1
我有一個更新存儲過程,我從C#代碼調用它,我的代碼同時在3個線程中運行。更新語句通常會引發錯誤「事務(進程ID)與另一進程在鎖資源上死鎖,並且被選爲死鎖受害者。重新運行事務」。我如何解決這個在SQL Server 2014或C#代碼?事務(進程ID)在另一個進程的鎖資源上死鎖,並被選爲死鎖犧牲品。在SQL服務器2014
更新存儲過程:
ALTER PROCEDURE sp_UpdateSP
@RecordID nvarchar(50),
@FileNetID nvarchar(50),
@ClassName nvarchar(150)
AS
Begin tran t1
UPDATE MYTABLE SET [email protected], [email protected], CONTROLID='FileAttach' where [email protected]
Commit tran t1
表索引: 非唯一,非聚集OTRECORDID升序爲nvarchar(255)
感謝
此過程不會單獨導致任何死鎖。您是否在線程中的任何其他過程或查詢中使用此表? –
不要用'sp_'開始你的過程名稱。 [sp_前綴仍然是否定的? - 亞倫伯特蘭](https://sqlperformance.com/2012/10/t-sql-queries/sp_prefix) – SqlZim
你說'otrecordid'是'nvarchar(255)'。爲什麼'@ RecordId''nvarchar(50)'的參數? – SqlZim