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 수정. 내 대답을 편집했습니다. –

관련 문제