我在我的应用程序声明中添加了另一个WHERE
条件。然后我可以在Activity监视器中看到很多像LCK_M_
这样的死锁。发生这种情况后,SQL-Server根本不会根据用户进行恢复。即使我杀死受影响的Windows和SQL进程 - 我需要重新启动SQL-Server然后再次运行。
这是它的工作原理。
UPDATE myDocuments
SET StatusLead = 10
WHERE FirmaPubINdex NOT IN
(
SELECT firmapubINdex FROM CSDokument WHERE dokumenttyp='3' AND ProjPubINdex IN
(
SELECT PubINdex FROM CSProjekt WHERE Projektnummer = '123456'
)
)
AND ProjPubINdex IN
(
SELECT PubINdex FROM CSProjekt WHERE Projektnummer = '123456'
)
AND DokumentTyp = '2'
这是导致问题的陈述。唯一的变化是在最后一行。
UPDATE myDocuments
SET StatusLead = 10
WHERE FirmaPubINdex NOT IN
(
SELECT firmapubINdex FROM CSDokument WHERE dokumenttyp='3' AND ProjPubINdex IN
(
SELECT PubINdex FROM CSProjekt WHERE Projektnummer = '123456'
)
)
AND ProjPubINdex IN
(
SELECT PubINdex FROM CSProjekt WHERE Projektnummer = '123456'
)
AND DokumentTyp = '2'
AND StatusLead <> '18'
目前我有点困惑,因为另一个用户已经测试了一整天的脚本并且没有问题。然后我尝试与另一个用户,该用户导致该问题。脚本中的这种变化真的会导致这个问题,还是偶然的呢?