UPDATE [Current]
SET
C_OS = CASE WHEN [Current].[OS] <> [viLastRecord].[OS] THEN '1' END,
C_VER = CASE WHEN [Current].[VER] <> [viLastRecord].[VER] THEN '1' END
WHERE
[Current].VHOST = viLastRecord.VHOST AND
[Current].HOSTNAME = viLastRecord.HOSTNAME
如果我运行此查询,则出现以下错误:
Msg 4104,Level 16,State 1,Line 1
无法绑定多部分标识符“viLastRecord.VHOST” 消息4104,级别16,状态1,行1 无法绑定多部分标识符“viLastRecord.HOSTNAME”。
答案 0 :(得分:2)
您需要join
,因为viLastRecord
是一个表,并且未在查询中定义。
从语法判断,看起来您正在使用SQL Server。所以,你可以试试这个:
UPDATE c
SET C_OS = (CASE WHEN c.[OS] <> vlr.[OS] THEN '1' END),
C_VER = (CASE WHEN c.[VER] <> vlr.[VER] THEN '1' END)
FROM [Current] c JOIN
viLastRecord vlr
ON c.VHOST = vlr.VHOST AND
c.HOSTNAME = vlr.HOSTNAME;