sqlserver分布式事务
启动服务中的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分布式事务的更多相关文章
- SQLSERVER分布式事务使用实例
实例一 尊重原著作:本文参考自http://www.jb51.net/article/43540.htm --BEGIN DISTRIBUTED TRANSACTION [transactionnam ...
- sqlserver Distributed Transaction 分布式事务
在webapi+ef+sqlserver开发项目时,利用transcope实现应用层级的事务时,偶尔会报分布式事务错误,而且很而复现,特别蛋疼.现将自己的解决方法初步整理下. 分析原因:搭建repos ...
- SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 "排队更新" 设置为 " ...
- SQLServer之创建分布式事务
分布式事务创建注意事项 指定一个由 Transact-SQL 分布式事务处理协调器 (MS DTC) 管理的 Microsoft 分布式事务的起点. 执行 BEGIN DISTRIBUTED TRAN ...
- 没有活动事务 链接服务器的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务
在windows2003下执行分布式事务的时候出现如下情况. 一. 问题现象在执行分布式事务时,在sql server 2005下收到如下错误: 链接服务器"xxxxxxx"的 O ...
- JAVA分布式事务原理及应用(转)
JTA(Java Transaction API)允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据. JDBC驱动程序的JTA支持极大地增强了数据访问能力. 本文的目 ...
- SQL SERVER 分布式事务(DTC)
BEGIN DISTRIBUTED TRANSACTION指定一个由 Microsoft 分布式事务处理协调器 (MS DTC) 管理的 Transact-SQL 分布式事务的起始. 语法BEGIN ...
- 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。
今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...
- ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)
我们知道在ADO.NET中可以用TransactionScope来将多个SqlConnection(多个数据库连接)执行的Sql语句放入一个事物中提交或取消,但是使用TransactionScope的 ...
随机推荐
- 有些CRM settype用事务码COMM_ATTRSET打不开的原因
This question is asked by Dr. Lin. Issue For example, settype COM_COMMERCIAL could be opened via tco ...
- PO设计模式
BasePage类: 在PO模式中抽象封装成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性. 基础页面类中包含公用方法:点击.输入.获取元素等 Page: 每个页面封装为 ...
- 分布式系统原理之cap理论
1.1 CAP理论的含义 Cap理论表示在分布式系统中一致性(C).可用性(A)和分区容错性(P)最多只能同时满足两个. 一致性:客户端更新数据成功后,在任意时刻,在系统任意对外提供服务的节点,读取 ...
- 『Python进阶』多进程多线程快速上手
线程池快速上手 from concurrent.futures import ThreadPoolExecutor from utils import * workers = 8 with Threa ...
- 杨巧丽 实验十四 团队项目评审&课程学习总结
实验十四 团队项目评审&课程学习总结 项目 内容 这个作业属于哪个课程 (https://www.cnblogs.com/nwnu-daizh/) 这个作业的要求在哪里 (https://ww ...
- destoon中get_maincat函数的用法
求解get_maincat函数的用法,如get_maincat(0, $CATEGORY, 1),其中第一.二.三个参数分别表示什么,有谁知道,请介绍下,谢谢! 答:get_maincat() 三个参 ...
- apache在linux下安装
yum安装 主流Linux系统版本基本上都集成了apache服务器httpd,我们可以通过如下命令来查看我们的操作系统上是否已经安装了apache服务器httpd rpm -qa | grep htt ...
- rn相关文档
RN相关文档: rn文档:https://reactnative.cn/ mbox文档:https://cn.mobx.js.org/ es6文档:http://es6.ruanyifeng.com/ ...
- Margin和padding失效
太久不写原生果然不行,Margin和padding对div有效,对span失效,原因就不解释了(元素性质,块状之类的)
- 关于很狗的军训qwq
我该用哪种方式来证明我存在过 说起这个很狗的军训呀,,, 军训嘛 就不得不先说最基本的,,, 那就是很狗的衣服,,, 一套军装,+一个帽子+一双特别特别特别硌脚的胶鞋!!! 然后... 我胖了..q ...