我正在尝试通过根据条件从另一个表设置其值来更新列。所以我做了以下几点: -
UPDATE
[dbo].MachineLog
SET
A.EmployeeId = B.EmployeeId
FROM
[dbo].MachineLog as A
INNER JOIN
[dbo].DeviceCode as B ON A.DeviceEnrollNo = B.DeviceEnrollNo
WHERE
A.EmployeeId = 0 AND B.EmployeeId <> 0
我收到错误:
多部分标识符&#34; A.EmployeeId&#34;无法受约束。
如何解决这个问题?
答案 0 :(得分:3)
从set
子句中删除别名,并将表目标更改为别名。
我不确定为什么不可能使用from
子句中set
子句的别名,但可以在update
子句中使用它。
也许其他人可以解释为什么会如此。
UPDATE
A
SET
EmployeeId = B.EmployeeId
FROM
[dbo].MachineLog as A
INNER JOIN
[dbo].DeviceCode as B
ON A.DeviceEnrollNo = B.DeviceEnrollNo
WHERE
A.EmployeeId = 0 AND B.EmployeeId <> 0