2011-01-07 154 views
2

我得到以下sql異常: 交易鎖定資源與另一個進程死鎖,並被選爲死鎖犧牲品。重新運行交易。在批次結束時檢測到不可提交的事務。事務回滾。 我沒有任何存儲過程中的任何交易,我從.net進行交易,我總是使用它們來調用它們。 你們以前遇到過嗎?交易已死鎖

回答

3

交易是一個交易,不管從哪裏開始。無論是在C#或RDBMS。

您的using問題BEGIN TRANSCATION有效。

MSDN (for SQL Server 2000 but still valid)建議您在檢測到死鎖時自動重試,而不是在此處編寫代碼,Google上有許多結果供您閱讀。

+0

海事組織MSDN在這方面顯然是錯誤的。如果你只是在沒有任何想法的情況下自動重試,你很可能會覆蓋別人的變化,也就是說,失去了變化。 – 2011-01-07 19:41:58

0

使用事務時,您需要小心,因爲默認情況下它將隔離級別設置爲可串行化。當連接釋放回池中時,它仍然具有該級別設置。這可能嚴重損害併發性。