加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLSERVER分布式事务使用实例

发布时间:2022-10-14 14:31:02 所属栏目:MsSql教程 来源:互联网
导读: --BEGIN DISTRIBUTED TRANSACTION [transactionname]
--标志一个由分布式事务处理协调器MSDTC管理的TSQL分布式事务开始
--SERVER A服务器为主控服务器。当连接发出后续COMMIT TRANSACTION或

--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服务器进入分布式事务中mssql 事务,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即可。

--标记下,以便以后解决。

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!