我有一个事务,它为许多不同的服务器执行许多OPENQUERY。其中一个服务器是MySQL。
如果我启动事务,然后将数据插入/更新到多个链接服务器。如果在此事务期间发生错误(例如链接服务器不可用),SQL Server是否会自动回滚整个事务并告知链接服务器是否回滚?或者它是否会提交事务,并且有可能将数据提交给一个服务器但不提交给其他服务器?
BEGIN TRAN T1;
INSERT INTO OPENQUERY...
INSERT INTO OPENQUERY....
INSERT INTO table1.....
UPDATE table 2 .....
COMMIT TRAN T1;
答案 0 :(得分:0)
由于您没有尝试catch块,是的,数据不会回滚的可能性很大。你需要指定在出错的情况下该怎么做。如果没有try catch块和回滚策略,你就不应该进行交易。