2016-07-28 3 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正しい。私の答えを編集しました。 –

関連する問題