gpt4 book ai didi

SQLSERVER分布式事务使用实例

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SQLSERVER分布式事务使用实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下

--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即可。 --标记下,以便以后解决.

  。

最后此篇关于SQLSERVER分布式事务使用实例的文章就讲到这里了,如果你想了解更多关于SQLSERVER分布式事务使用实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com