如果在运行期间发生错误,SQL Server事务是否会提交?

时间:2015-02-04 18:27:25

标签: sql sql-server sql-server-2008 transactions

我有一个事务,它为许多不同的服务器执行许多OPENQUERY。其中一个服务器是MySQL。

如果我启动事务,然后将数据插入/更新到多个链接服务器。如果在此事务期间发生错误(例如链接服务器不可用),SQL Server是否会自动回滚整个事务并告知链接服务器是否回滚?或者它是否会提交事务,并且有可能将数据提交给一个服务器但不提交给其他服务器?

BEGIN TRAN T1;
 INSERT INTO OPENQUERY...
 INSERT INTO OPENQUERY....
 INSERT INTO table1.....
 UPDATE table 2 .....
 COMMIT TRAN T1;

1 个答案:

答案 0 :(得分:0)

由于您没有尝试catch块,是的,数据不会回滚的可能性很大。你需要指定在出错的情况下该怎么做。如果没有try catch块和回滚策略,你就不应该进行交易。