gpt4 book ai didi

sql-server - 何时需要在 try catch block 中检查 @@trancount > 0 ?

转载 作者:行者123 更新时间:2023-12-02 22:14:31 24 4
gpt4 key购买 nike

有时我会看到以下代码片段。什么时候 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时,我可以想到一些需要考虑的场景:

  1. 当前事务是从另一个存储过程调用的,该存储过程具有自己的交易
  2. 当前事务由某些 .NET 代码及其自己的代码调用交易
  3. 当前交易是唯一交易

我相信 Remus Rusanu 的 Exception handling and nested transactions处理所有这些可能性。

关于sql-server - 何时需要在 try catch block 中检查 @@trancount > 0 ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13983467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com