我有两个存储过程,都将行插入到同一个表中。
一旦存储过程调用常规时间间隔,另一个存储过程调用用户事件。有时两个存储过程一起被调用,此时发生死锁。
我该如何解决这个问题?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以将表锁定在两个sprocs的开头。这样就不会出现死锁,因为数据修改必须等到另一个sproc完成。请参阅以下命令:
select 1 from theTable with (tablock, holdlock) where 1=0;
还需要在交易中完成。交易完成后,该表格将可编辑。
答案 2 :(得分:0)
您也可以考虑检测条件并重试。让每个程序在短时间内退回