2013-12-11 2 views
0

현재 연결된 서버를 사용하여 테이블에서 업데이트를 실행하려고합니다.SQL - 하위 쿼리 및 연결된 서버로 업데이트 명령

예.

update table1 a 
set a.column1=(select Count(b.column1) FROM linkedserver.databse.table b) 
where a.column2=b.column2 
and a.column3=b.column3 

내 문제는 다음과 같습니다 바인딩 할 수없는

다중 부분 식별자 "linkedserver.databse.table.column".

이 작업은 별칭으로 볼 수있는 유일한 방법이며 서버에 연결된 서버에 대한 적절한 액세스 권한이 있다는 것을 알고 있습니다.

답변

1

당신은 내가 볼 것으로 예상 것이기 때문에,이 문제의 원인이다

LinkedServer.Database.Schema.Table 

또는

LinkedServer.Database..Table (if schema is dbo) 
0

특정하지를 사용하여 쿼리에

시도 스키마를 포함해야 다른 오류가 있지만 구문은 다음과 같아야합니다.

update a 
    set a.column1=(select count(b.column1) 
        from linkedserver.databse.table b 
where a.column2=b.column2 
     and a.column3=b.column3) 
    from table1 a 
0

연결된 서버로 작업 할 때 UPDATE FROM 문과 4 부분 테이블 이름을 사용하십시오.

update table1 
set column1=(select Count(b.column1) FROM linkedserver.databse.dbo.table b) 
from table1 a 
where a.column2=b.column2 and a.column3=b.column3