分布式事务

分布式事务:

 

1. 准备工作

--创建连接实例
exec sp_addlinkedserver Server247DB ,'','SQLOLEDB','192.168.58.247,1433'

--在连接实例(Server240DB)上创建登录,要输入用户名和密码
exec sp_addlinkedsrvlogin Server247DB,'false',null,'sa','a11111'

--查看连接实例
select * from sysservers

--删除连接实例
exec sp_dropserver Server240DB

--删除连接名称的登录
exec sp_droplinkedsrvlogin Server240DB,null

--打开cmd,输入以下命令启动msdtc,用于支持跨服务器事务
net start msdtc


2. sp

Set XACT_abort ON --一定要加上这一个命令,不然在执行过程中报错不会直接结束事务并回滚

Update Server247DB.Bets.dbo.Users Set Point = 0 Where UserName='aaj71'
Update AgentSystem.dbo.Users Set Points = 0 Where UserName='aaj71'

--注意:在同一台服务器上的两个数据库,不能使用连接实例,会报错,因为系统会认为重复指向

 

 

 

//引用System.Transactions.dll
using System.Transactions; //namespace

 


using (TransactionScope ts = new TransactionScope())
{

//code1
Update(con)

//code2
Update2(con)

ts.Complete();

}

posted @ 2010-07-29 17:56  陈跳跳  阅读(286)  评论(0编辑  收藏  举报