分布式事务:
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();
}