17
有時我看到下面的代碼片段。 begin try
需要if @@trancount > 0
何時需要?兩個都?或者它是一種安全的方式(最佳實踐),以便在檢查之前一直檢查它是否回滾?當需要在try catch塊中檢查@@ trancount> 0時?
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
該示例似乎嘗試避免嵌套事務。有必要嗎? – ca9163d9
對我來說,這個想法是,如果這個新的動作是一個嵌套事務,然後將其保存。如果有錯誤,如果這是一個嵌套事務,只回滾嵌套事務,以免影響原主叫方。 – 8kb
4:當你調用一些垃圾加密API SP如果決定有問題,不回滾自己的事務...... –