启动服务中的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. 在eclipse中使用Maven分模块搭建SSM框架,创建jar、war、pom工程模块教学,项目的热部署,需要的可以留下邮箱,给大家发整理过的Maven笔记

    第一章:Maven概述 (1)Maven是一个项目构建工具,由apache提供,用Java开发的 (2)构建工具:Ant(蚂蚁),Maven(专家) (3)构建工具作用:帮助程序员进行项目的创建,目录 ...

  2. Linux文件服务管理之Samba

    Linux文件服务器的搭建            Samba      vsftpd      nfs       Samba服务                     作用:共享目录        ...

  3. Mybatis-plus中不列出全部字段

    //不列出全部字段 @Test public void test10() { QueryWrapper<User> wrapper = new QueryWrapper<>() ...

  4. python中的__init__(self)是什么意思呢

    python中的__init__(self)是什么意思呢 init(self)这个时类的初始化函数 1 2 3 4 class Obj: def init(self): print 1 obj = O ...

  5. nginx secure_link_module 访问包含

    server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.acce ...

  6. Python基础之while和for

    实现ATM的输入密码重新输入的功能 while True: user_db = 'nick' pwd_db = '123' inp_user = input('username: ') inp_pwd ...

  7. 异常DBG_PRINTEXCEPTION_C(0x40010006)和DBG_PRINTEXCEPTION_WIDE_C(0x4001000A)

    简介 DBG_PRINTEXCEPTION_C,代码0x40010006:DBG_PRINTEXCEPTION_WIDE_C,代码0x4001000A:在调试器的控制台窗口打印异常信息/调试信息.它定 ...

  8. PHP原生分页的编写

    <?php $link=mysql_connect("localhost","root","admin",'news')or die( ...

  9. plv8 中使用 eval 函数执行表达式计算

    在js 开发中我们都说eval 函数是邪恶的,但是此函数也有好多妙用,以下是几个简单的案例 eval 执行基于js 的表达式计算 比如我们有以下表 CREATE TABLE rules (    id ...

  10. Pandas之csv文件对列行的相关操作

    1.Pandas对数据某一列删除 1.删除列 import pandas as pd df = pd.read_csv(file) #axis=1就是删除列 df.drop(['列名1','列名2'] ...