启动服务中的Distributed Transaction Coodinator后

创建链接服务器ender-pc\subx

设定连接服务器RPC OUT 以及RPC属性为True

实验一下代码

创建表

CREATE TABLE [dbo].[yuf](
[id] [uniqueidentifier] NOT NULL,
[namx] [nvarchar](50) NOT NULL,
) ON [PRIMARY]

第一种方法显示调用begin distributed transaction  

set XACT_ABORT on
begin distributed transaction distributedtran begin declare @rowcounts int =0; insert into dbo.yuf(id,namx) values(newid(),N'test1');
select * from dbo.yuf; set @rowcounts=@rowcounts+(select @@ROWCOUNT); insert into [ender-pc\subx].subt.dbo.yuf(id,namx) values(newid(),N'test1'+REPLICATE(N'1',50)); set @rowcounts=@rowcounts+(select @@ROWCOUNT); if @rowcounts=2 commit transaction distributedtran; else rollback transaction distributedtran; end go select * from dbo.yuf;

 

第二种方法跟调用本地事务一样

USE test
EXEC sp_configure 'remote proc trans', 1 ;
GO
RECONFIGURE ;
GO

 

1)调用存储过程方式

CREATE PROCEDURE xt
@l int
AS
BEGIN
set xact_abort on;
begin tran insert into dbo.yuf(id,namx) values(newid(),N'test1'); insert into [ender-pc\subx].subt.dbo.yuf(id,namx) values(newid(),N'test1'+REPLICATE(N'1',@l));
commit tran; END
GO

  

exec dbo.xt @l=55;--插入超长字符串,导致两个表数据回滚
GO
exec dbo.xt @l=20;--两表插入正常

2)直接脚本调用方式

set xact_abort on
begin tran declare @rowcounts int =0; insert into dbo.yuf(id,namx) values(newid(),N'test1');
select * from dbo.yuf; set @rowcounts=@rowcounts+(select @@ROWCOUNT); insert into [ender-pc\subx].subt.dbo.yuf(id,namx) values(newid(),N'test1'+REPLICATE(N'1',20)); set @rowcounts=@rowcounts+(select @@ROWCOUNT); commit transaction

  

sqlserver分布式事务的更多相关文章

  1. SQLSERVER分布式事务使用实例

    实例一 尊重原著作:本文参考自http://www.jb51.net/article/43540.htm --BEGIN DISTRIBUTED TRANSACTION [transactionnam ...

  2. sqlserver Distributed Transaction 分布式事务

    在webapi+ef+sqlserver开发项目时,利用transcope实现应用层级的事务时,偶尔会报分布式事务错误,而且很而复现,特别蛋疼.现将自己的解决方法初步整理下. 分析原因:搭建repos ...

  3. SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)

    原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 "排队更新" 设置为 " ...

  4. SQLServer之创建分布式事务

    分布式事务创建注意事项 指定一个由 Transact-SQL 分布式事务处理协调器 (MS DTC) 管理的 Microsoft 分布式事务的起点. 执行 BEGIN DISTRIBUTED TRAN ...

  5. 没有活动事务 链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务

    在windows2003下执行分布式事务的时候出现如下情况. 一. 问题现象在执行分布式事务时,在sql server 2005下收到如下错误: 链接服务器"xxxxxxx"的 O ...

  6. JAVA分布式事务原理及应用(转)

      JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据. JDBC驱动程序的JTA支持极大地增强了数据访问能力. 本文的目 ...

  7. SQL SERVER 分布式事务(DTC)

    BEGIN DISTRIBUTED TRANSACTION指定一个由 Microsoft 分布式事务处理协调器 (MS DTC) 管理的 Transact-SQL 分布式事务的起始. 语法BEGIN ...

  8. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

    今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...

  9. ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)

    我们知道在ADO.NET中可以用TransactionScope来将多个SqlConnection(多个数据库连接)执行的Sql语句放入一个事物中提交或取消,但是使用TransactionScope的 ...

随机推荐

  1. Get SAP Code Page by External Name

    CL_ABAP_CODEPAGE - SAP_CODEPAGE 取SAP对应code page内码:

  2. WorkFlow四:添加用户决策步骤

    沿用之前的例子,做个用户决策步骤. 1.事物代码SWDD: 进入抬头,点击类的绑定按钮. 2.选择类的绑定,点击继续. 这是类的绑定已经变色了.这时候点击保存,再点击返回到图片逻辑流界面. 3.在发送 ...

  3. AMD Ryzen一代、二代CPU一览表

    Ryzen一代(14纳米).二代(12纳米)CPU一览表 http://img30.360buyimg.com/sku/jfs/t1/1134/23/12713/382299/5bd910f9E63b ...

  4. 遍历php的_SERVER数组键值信息

    $_SERVER 是一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组.这个数组中的项目由 Web 服务器创建.不能保证每个服务器都 ...

  5. jq node.js bootstrap

    1.node.js 网址:https://nodejs.org/en/ 用来通过下载node.js 来引用里面的npm 来实现对外部项目的下载 1.安装nodejs 自带了npm npm instal ...

  6. 2019徐州网络赛H :function (min25筛)

    题意:f(i)=i的幂次之和. 求(N+1-i)*f(i)之和. 思路:可以推论得对于一个素数p^k,其贡献是ans=(N+1)[N/(P^k)]+P^k(1+2+3...N/(P^k)); 我们分两 ...

  7. RabbitMQ六种队列模式-工作队列模式

    前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列 [本文]RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主 ...

  8. plv8 触发器使用

    触发器使用 demo CREATE FUNCTION test_trigger() RETURNS TRIGGER AS $    plv8.elog(NOTICE, "NEW = &quo ...

  9. Dijkstra单源点最短路径算法

    学习参考: Dijkstra算法(单源最短路径) 最短路径—Dijkstra算法和Floyd算法 使用的图结构: 邻接矩阵: -1 20 -1 25 80-1 -1 40 -1 -1-1 -1 -1 ...

  10. glyphicons-halflings-regular.ttf:1 Failed to load resource: net::ERR_FILE_NOT_FOUND

    下载替换 https://gitlab.com/mailman/mailman-website/tree/a97d6b4c5b29594004e3855f1ab1222449d0c211/conten ...