我试图在查看页面的人(它增加查看的计数)时更新表中的一行,但是现在然后我得到一个死锁错误,我猜这是由于到两个或更多的人试图更新同一行?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