Sql-Server

如果出現死鎖異常(MSSQL),我可以重試每個 SQL 查詢嗎

  • December 3, 2021

在出現死鎖異常的情況下重試 SQL 查詢總是安全的嗎?這會導致意外行為或執行兩次操作嗎?我認為死鎖異常總是意味著回滾,即使查詢沒有在明確定義的事務中執行。

是的。

但請理解,死鎖是一個代價高昂的問題。每個死鎖都涉及回滾。通過 TRY/CATCH 進行簡單的重試是一種非常標準的死鎖處理機制。但是,它引入了進入循環的問題,所以要小心。

這是它如何工作的範例。特別看一下循環計數器範例。通過限制重試次數,您可以遠離危險區域。

引用自:https://dba.stackexchange.com/questions/303471