启动服务中的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. 6 Linux用户和用户组管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须首相像系统管理员申请账号,然后以这个账号身份进入系统 每个用户账号都拥有一个唯一的用户名和各自的口令 用户在登陆时键入 ...

  2. Spring Cloud 微服务实战笔记

    Spring Cloud 微服务实战笔记 微服务知识 传统开发所有业务逻辑都在一个应用中, 开发,测试,部署随着需求增加会不断为单个项目增加不同业务模块:前端展现也不局限于html视图模板的形式,后端 ...

  3. php-fpm编译安装脚本

      PHP是开源.轻量级.高效的开发语言,特别适合web项目开发,在中小型互联网公司中常用于开发web后端.PHP常与Nginx及MySQL数据库结合,搭建LNMP环境.以下为centos7系统下ph ...

  4. 201871010107-公海瑜《面向对象程序设计(java)》第二周学习总结

    201871010107-公海瑜<面向对象程序设计(java)>第二周学习总结             项目                          内容   这个作业属于哪个课 ...

  5. excel隔行选中内容如何操作

    查看log日志是站长经常要做的事,从日志中可以发现很多问题,spider最近有没来爬,爬了哪些url,哪些页面不存在了等等,这些都可以看得到.然后你要根据不同的情况采取相应的措施.ytkah喜欢把这些 ...

  6. hdu1873-看病要排队-(结构体优先队列)

    http://acm.hdu.edu.cn/showproblem.php?pid=1873 #include<stdio.h> #include<iostream> #inc ...

  7. Linux磁盘管理——分区和文件系统

    1.分区类型 (1)主分区:最多只能有四个(主分区加扩展分区一共有四个). (2)扩展分区:最多有一个,是主分区中的其中一个.不能存储数据也不能格式化,必须再分成逻辑分区才能使用. (3)逻辑分区:是 ...

  8. Linux提高工作效率的命令

    find ./ -name 'laun*'|xargs grep 8881 在laun开头的文件内查找8881 find ./ -name 'laun*' find . -type f -mtime ...

  9. django -- 实现ORM登录

    前戏 上篇文章写了一个简单的登录页面,那我们可不可以实现一个简单的登录功能呢?如果登录成功,给返回一个页面,失败给出错误的提示呢? 在之前学HTML的时候,我们知道,网页在往服务器提交数据的时候,都是 ...

  10. vue - 小日历项目制作中的问题与解决思路

    效果图: 项目难点: 1. 每个月的日期数是不定的,拢共需要几个格子? 按照教程的做法需要42个.所以遍历数字42,得到42个div做格子. 2. 格子的排版怎么做? 顶部的星期布局使用的flex水平 ...