2016-07-28 58 views
-1

我想通过基于条件从另一个表中设置其值来更新列。所以,我做了以下内容: -更新查询错误:多部分标识符无法绑定

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 

我收到错误:

The multi-part identifier "A.EmployeeId" could not be bound.

如何解决这个问题?

回答

3

set子句中删除别名,并将表目标更改为别名。 我不确定为什么无法使用set子句中的from子句中的别名,但可以在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 
+1

如果人们要学习,有助于指出a)你已经改变了什么,b)**为什么它修复了这个问题。 –

+0

@Damien_The_Unbeliever正确。编辑我的答案。 –

相关问题