我試圖在查看頁面的人(它增加查看的計數)時更新表中的一行,但是現在然後我得到一個死鎖錯誤,我猜這是由於到兩個或更多的人試圖更新同一行?SQL - 導致死鎖錯誤的更新
的錯誤是:
Transaction (Process ID 60) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
我的SQL是:
UPDATE [ProductDescription]
SET [ViewCount] = ([ViewCount] + 1)
WHERE ProductCode = @prodCode
AND ApplicationID = @AppID
我認爲我可能需要WITH(NOLOCK)?
您應該從[使用SQL Server Profiler分析死鎖]開始(http://msdn.microsoft.com/en-us/library/ms188246(v = sql.100).aspx) –
不要使用WITH (NOLOCK)',你應該考慮檢查你的事務隔離級別和索引。正確的索引可以減少爭用。 –
謝謝,我添加了一個索引,希望能大大減少錯誤! – dhardy