复制代码 代码如下:
--BEGIN DISTRIBUTED TRANSACTION [transactionname]
--标志一个由分布式事务处理协调器MSDTC管理的TSQL分布式事务开始
--SERVER A服务器为主控服务器。当连接发出后续COMMIT TRANSACTION或
--ROLLBACK TRANSACTION语句时,主控服务器请求MSDTC在所涉及的服务器间管理
--分布式事务的完成
--SQLSERVER使用链接服务器或者远程服务器作为分布式事务处理的平台,提供
--远程存储过程调用和分布式查询
--当使用分布式事务进行一个远程存储过程调用和一个分布式查询时,在SERVER A
--上发出BEGIN DISTRIBUTED TRANSACTION ,该连接调用SERVER B上的存储过程
--和SERVER C上的另一个存储过程,并且SERVER C上的存储过程对SERVER D执行一个
--分布式查询,则四个SQLSERVER服务器进入分布式事务中,SERVER A是该事务的创建者
--和控制服务器
--创建分布式事务,在本地和远程数据库同时删除一条记录,其中,远程SQLSERVER
--的实例名称为RemoteServer。本地和远程数据库同时提交或同时回滚该事务。
--注意,执行分布式查询或调用存储过程时,使用4部分名称限定规则
--前提:本机的MSDTC和远程机器的MSDTC服务要打开
--本机和远程机器能互相ping通
--数据库端口能互相telnet通
--创建一个链接服务器到远程机器WIN7U-20130414Z
USE [GPOSDB]
GO
SELECT * FROM [SystemPara] WHERE [Name]='HDTPort'
SELECT * FROM [WIN7U-20130414Z].[GPOSDB].dbo.[SystemPara] WHERE [Name]='HDTPort'
USE [GPOSDB]
GO
BEGIN DISTRIBUTED TRANSACTION
--从本地数据库删除一条记录
DELETE FROM [JOE].[GPOSDB].[DBO].[SystemPara]
WHERE [Name]='HDTPort'
--从远程数据库中删除一条记录
DELETE FROM [GPOSDB].[dbo].[SystemPara]
WHERE [Name]='HDTPort'
COMMIT TRAN
GO
--个人尝试了下是由于在双向的sql server访问中采用了链式方式访问(LinkedServer方式),
--遇到这种情况只需要将原来访问对方数据库的语句:
--select * from linkedServerA.dbo.table1
--修改为:
--select * from dbo.table1即可。
--标记下,以便以后解决。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]