SQLSERVER分布式事务使用实例

时间:2024-01-28 03:57:28 


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

标签:分布式事务
0
投稿

猜你喜欢

  • 利用xslt对xml进行缩进格式化处理

    2008-09-04 10:34:00
  • IDEA导入Git项目的方法

    2023-01-25 23:09:09
  • 如何在SQL2000的查询中使用XML-Data?

    2010-06-18 19:26:00
  • JavaScript转换与解析JSON方法实例详解

    2024-04-17 10:22:44
  • ASP.NET(C#)读取Excel的文件内容

    2023-07-10 22:38:35
  • Python实现删除重复视频文件的方法详解

    2022-06-16 03:24:29
  • python密码学各种加密模块教程

    2021-03-10 05:32:55
  • Apache DophinScheduler定时调度Python脚本的实现

    2021-06-23 15:02:54
  • Python爬虫制作翻译程序的示例代码

    2023-08-13 06:38:35
  • 两个2008北京奥运会倒计时js代码

    2008-06-11 13:26:00
  • 如何使用python-opencv批量生成带噪点噪线的数字验证码

    2023-10-14 03:38:54
  • javascript模拟鼠标自动点击链接

    2007-11-03 19:08:00
  • MySql批量插入优化Sql执行效率实例详解

    2024-01-18 07:52:06
  • JS实现六边形3D拖拽翻转效果的方法

    2023-08-28 15:51:31
  • Mysql DDL常见操作汇总

    2024-01-22 05:30:09
  • Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例

    2021-06-17 20:46:53
  • ipad上运行python的方法步骤

    2021-12-06 19:05:36
  • 详解python脚本自动生成需要文件实例代码

    2023-10-04 08:44:10
  • Oracle中PL/SQL复合数据类型

    2024-01-22 07:17:47
  • Python可变与不可变数据和深拷贝与浅拷贝

    2022-06-05 21:14:51
  • asp之家 网络编程 m.aspxhome.com