SQL存储过程中的陷阱死锁错误

时间:2014-10-02 16:27:12

标签: sql sql-server-2008 stored-procedures deadlock

我有一个简单的SQL存储过程用于更新表,有时我遇到阻止更新的死锁。 我可以在存储过程中使用什么来捕获此死锁,然后再次重试更新?

2 个答案:

答案 0 :(得分:1)

您应该在应用程序中创建一个错误处理程序来处理这个问题。确保在重新提交查询之前给它一些时间。

答案 1 :(得分:0)

你可以尝试/抓住它 http://technet.microsoft.com/en-us/library/aa175791%28v=sql.80%29.aspx
DECLARE @Tries tinyint SET @Tries = 1 WHILE @Tries <= 3 BEGIN BEGIN TRANSACTION BEGIN TRY INSERT Authors VALUES (@au_id, @au_lname, '', '', '', '', '', '11111', 0) WAITFOR DELAY '00:00:05' SELECT * FROM authors WHERE au_lname LIKE 'Test%' COMMIT BREAK END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ROLLBACK SET @Tries = @Tries + 1 CONTINUE END CATCH; END