Sql Transaction不会完成回滚

时间:2014-01-24 12:43:13

标签: sql-server sql-server-2005 transactions rollback

我看到一些随机发生的奇怪行为。 这是我的商店程序基本上做的。

begin try
        begin tran
        insert into table1
        update table2
        insert into table3
        commit tran
end try

begin catch
        rollback tran
end catch

在大多数情况下,上面的代码工作正常,除了偶尔(每天一次或两次)发生某些错误时,事务不会回滚所有3个表中的更改。

   begin try
            begin tran
            insert into table1----Rollback doesn't happen
            update table2--Rollback happens 
            insert into table3--Rollback happens 
            commit tran
    end try

    begin catch
            rollback tran
    end catch

任何人都可以建议我可能出错的地方,或者我是否需要以其他方式处理交易?

提前致谢。

1 个答案:

答案 0 :(得分:0)

检查您的SET XACT_ABORT设置以及失败的sql中的错误级别实际上是

How to make SET XACT_ABORT ON rollback the transaction?