我有一个旧版SQL Server 2000数据库在我的办公室中运行,最近有10年的代码必须工作10年。现在有奇怪的问题。 代码非常简单,它是3个字段的update语句。但是,现在当我尝试立即更新此查询中的字段之一(ard.Applbatnbr)时,出现了内部错误8624。(再次说明一下,此代码运行了10年没有问题)
UPDATE Ard
SET ard.Applbatnbr ='',ard.ApplAmt=0,ard.CuryApplamt=0
FROM wrkrelease w INNER JOIN batch b
ON b.batnbr = w.batnbr
INNER JOIN ardoc ard
ON ard.Applbatnbr = b.batnbr
WHERE b.Module='AR' AND w.Module='AR'
AND useraddress =@useraddress
AND b.status ='I'
AND b.editscrnnbr ='08030'
此代码将返回错误消息“内部SQL服务器错误”
但是,当我尝试通过删除问题字段(ard.Applbatnbr)仅更新另外两个字段时,我可以毫无错误地处理更新。
UPDATE Ard
SET ard.ApplAmt=0,ard.CuryApplamt=0
FROM wrkrelease w INNER JOIN batch b
ON b.batnbr = w.batnbr
INNER JOIN ardoc ard
ON ard.Applbatnbr = b.batnbr
WHERE b.Module='AR' AND w.Module='AR'
AND useraddress =@useraddress
AND b.status ='I'
AND b.editscrnnbr ='08030'
我试图用表中的另一个查询直接更新此字段“ ard.Applbatnbr”,而没有与另外2个表的连接。像下面的例子一样,我也没有得到任何错误。
update ardoc set ard.Applbatnbr = '' where batnbr = 'xxxxx'
每当我更新此字段“ ard.Applbatnbr”并同时加入这3个表(wrkrelease,batch,ardoc)时,就会显示内部错误。
我还尝试在包含相同表结构的另一个数据库中运行此查询,该查询将正常运行。所以我完全迷路了。我有什么想念的吗?请帮忙。