分布式数据库操作笔记


/*映射和删除远程服务器连接 */
exec sp_addlinkedserver  @server='demo', @srvproduct='',@datasrc='192.168.2.93',@provider='SQLOLEDB' /* 不能再事务中执行存储过程*/

exec sp_dropserver 'demo'

select * from sys.servers /*查询此服务器中所有服务器映射记录 */


/*映射和删除远程服务器的数据库登陆账号 */

exec sp_addlinkedsrvlogin @rmtsrvname='demo',@useself= 'false' ,@locallogin=NULL,@rmtuser='sa', @rmtpassword='123456'

exec sp_droplinkedsrvlogin  @rmtsrvname='demo',@locallogin=null


select * from sys.servers
exec  sp_helpserver @server='demo' /*查看远程映射demo服务器的信息*/


BEGIN TRAN  t1 /*启动事务*/

/*测试操作远程数据库和本地事务*/

reate databse test

use test

select * into t from demo.ris.dbo.ConfigurationDocument_ where version_=0/*拷贝远程数据库中的表结构,然后创建t表*/


insert into t
select * from demo.ris.dbo.ConfigurationDocument_ /*从远程数据库中获得数据库,然后批量插入本地数据库*/

use Test
select * from t

use test
delete from t

 

rollback tran t1

commit tran t1

 

备注:

BEGIN DISTRIBUTED { TRAN | TRANSACTION } /*分布式事务*/
     [ transaction_name | @tran_name_variable ]
[ ; ]

/*
该示例从数据库引擎 的本地实例和远程服务器的实例上的 AdventureWorks 数据库中同时删除候选项。本地和远程数据库都将提交或回滚本事务。

注意: 
除非正在运行数据库引擎 的实例的计算机中当前安装了 MS DTC,否则本示例会产生错误消息。关于安装 MS DTC 的详细信息,请参见 Microsoft 分布式事务处理协调器文档。

*/
USE AdventureWorks;
GO
BEGIN DISTRIBUTED TRANSACTION;
-- Delete candidate from local instance.
DELETE AdventureWorks.HumanResources.JobCandidate
    WHERE JobCandidateID = 13;
-- Delete candidate from remote instance.
DELETE RemoteServer.AdventureWorks.HumanResources.JobCandidate
    WHERE JobCandidateID = 13;
COMMIT TRANSACTION;
GO

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值