Sql-Server
如果出現死鎖異常(MSSQL),我可以重試每個 SQL 查詢嗎
在出現死鎖異常的情況下重試 SQL 查詢總是安全的嗎?這會導致意外行為或執行兩次操作嗎?我認為死鎖異常總是意味著回滾,即使查詢沒有在明確定義的事務中執行。
是的。
但請理解,死鎖是一個代價高昂的問題。每個死鎖都涉及回滾。通過 TRY/CATCH 進行簡單的重試是一種非常標準的死鎖處理機制。但是,它引入了進入循環的問題,所以要小心。
這是它如何工作的範例。特別看一下循環計數器範例。通過限制重試次數,您可以遠離危險區域。