我遇到了一个偶尔会死锁的 Web 应用程序的问题
涉及3个查询。2 正在尝试更新表
UPDATE AttendanceRoll
SET ErrorFlag = 0
WHERE ContractID = @ContractID
AND DATEPART(month,AttendanceDate) = DATEPART(month,@Month_Beginning)
AND DATEPART(year,AttendanceDate) = DATEPART(year,@Month_Beginning)
一个正试图插入到表中
INSERT INTO AttendanceRoll
(AttendanceDate, ContractID, PersonID,
StartTime,
EndTime,
Hours, AbsenceReason,
UpdateCount, SplitShiftID, ModifiedBy, ModifiedDate)
SELECT
@P33, @P34, @P35,
CONVERT(datetime,REPLACE( @P36, '.', ':')),
CONVERT(datetime,REPLACE( @P37, '.', ':')),
@P38, @P39,
@P40, 1, @P41, GETDATE()
死锁图显示了页面锁和交换事件的一种循环排列,并且 2 个更新查询具有相同的服务器进程 ID。
如果有人对我应该如何解决这个问题有任何想法,将不胜感激。
如果有人需要,我可以发布死锁图。
谢谢卡尔 R