SQLSERVER分布式事务使用实例

 更新时间:2013年11月21日 10:04:21   作者:  
这篇文章主要介绍了如何使用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即可。
--标记下,以便以后解决。

相关文章

  • SQL学习笔记一SQL基础知识

    SQL学习笔记一SQL基础知识

    刚开始接触sqlserver的朋友可以参考下。虽然文字比较短,但内容都是经验之谈。
    2011-08-08
  • SQL对数据进行按月统计或对数据进行按星期统计的实例代码

    SQL对数据进行按月统计或对数据进行按星期统计的实例代码

    这篇文章主要介绍了SQL对数据进行按月统计或对数据进行按星期统计的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • SQL SERVER日志进行收缩的图文教程

    SQL SERVER日志进行收缩的图文教程

    这篇文章主要给大家介绍了关于SQL SERVER日志进行收缩的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用SQL SERVER具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • SQLSERVER数据备份文件的分割备份方法

    SQLSERVER数据备份文件的分割备份方法

    这篇文章主要介绍了SQLSERVER数据备份文件的分割备份方法 ,需要的朋友可以参考下
    2014-12-12
  • 深入SQLServer中ISNULL与NULLIF的使用详解

    深入SQLServer中ISNULL与NULLIF的使用详解

    本篇文章是对SQLServer中ISNULL与NULLIF的使用进行了详细分析介绍,需要的朋友参考下
    2013-06-06
  • SQL Server的行级安全性详解

    SQL Server的行级安全性详解

    行级别安全性使您能够使用组成员身份或执行上下文来控制对数据库表中行的访问,行级别安全性 (RLS) 简化了应用程序中的安全性设计和编码。本文主要介绍了SQL Server的行级安全性,需要的朋友可以参考阅读
    2023-04-04
  • SQL Server 2000“设备激活错误”的解决方法

    SQL Server 2000“设备激活错误”的解决方法

    数据库恢复时出现诸如“设备激活错误,请使用with move选项来标志该文件的有效位置”报错的解决方法
    2013-11-11
  • 数据库复制性能测试 推送模式性能测试

    数据库复制性能测试 推送模式性能测试

    使用了数据库复制的人,首先担心的就是主服务器和备份服务器的性能消耗问题,本人也是对此十分担忧,查了半天,基本上没发现类似的测试说明,就自己测试了一下,下面为测试的结果,仅供参考
    2012-06-06
  • 在Ubuntu使用SQL Server创建Go应用程序的图文教程

    在Ubuntu使用SQL Server创建Go应用程序的图文教程

    这篇文章主要给大家介绍了关于在Ubuntu使用SQL Server创建Go应用程序的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-04-04
  • SQL创建临时表的两种方法

    SQL创建临时表的两种方法

    在SQL中,创建临时表的方法主要有两种:使用WITH子句和CREATETEMPORARYTABLE语句,适用于需要在多个查询或整个会话中使用的场景,选择合适的方法取决于临时表的使用需求和持久性要求,感兴趣的可以了解一下
    2024-10-10

最新评论