有时我看到以下代码片段。什么时候需要if @@trancount > 0
和begin try
?他们都?还是一种安全的方法(最佳实践),始终进行检查以防在检查之前回滚?
begin tran
begin try
... just several lines of sql ...
if @@trancount > 0 commit tran
end try
begin catch
if @@trancount > 0 rollback tran
end catch
最佳答案
我可以想到一些在处理@@trancount
时要考虑的场景:
自己的交易
交易
我相信Remus Rusanu的Exception handling and nested transactions可以处理所有这些可能性。
关于sql-server - 何时需要在try catch块中检查@@ trancount> 0?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13983467/