嘗試使用 SET LOCK_TIMEOUT 3000 讓死鎖等待 3 秒後自動終止,但連線一段時間後設定自動還原為 -1 (無限等待)。
SET LOCK_TIMEOUT 是連線層級設定:
TRY...CATCH (SQL 2005+) 捕捉 1205 錯誤並重試READ_COMMITTED_SNAPSHOT (SQL 2005+) 減少讀寫衝突SqlConnection.ConnectionTimeout (連線逾時) + 命令層級 CommandTimeoutSQL_ATTR_QUERY_TIMEOUTSET LOCK_TIMEOUT 3000SET LOCK_TIMEOUT 無法全域永久生效。
死鎖根治在於應用邏輯設計(存取順序、交易長度、隔離層級),而非依賴逾時終止。逾時僅是安全網,不能替代正確的並發控制設計。