我的一位同事的存儲過程執行以下操作:
Begin tran
1)動態生成select語句。
2)插入到表X
3)執行SELECT語句
結束TRANSQL 2008 SP - 死鎖原因還是紅鯡魚?
如果此存儲過程是通過同時在兩個隔線程跑了,他得到了以下錯誤: System.Data.SqlClient.SqlException :事務(進程ID 57)在lock |上死鎖通信緩衝區資源與另一個進程並被選爲死鎖受害者。重新運行
這個存儲過程真的是這個問題嗎?從我的天真頭腦來看,這看起來更糟糕的是競賽狀況,而不是僵局。
select語句還創建鎖。可能步驟1和3在兩個線程中爲相同的記錄而戰。 – 2010-03-01 22:17:01