2016-07-28 57 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正確。編輯我的答案。 –

相關問題