2014-10-22 6 views
0

에서 데이터를 끌어 :쿼리 SQL 연결된 서버 단지 내가 다음과 같은 방법으로 명명 된 네 개의 SQL 서버를 하나 개의 서버

dbs 
dbs2 
dbs3 
dbs4 

내가 database1에 DBS3라고 표에 테이블이있다. 이 테이블은 다른 서버에 존재하지 않습니다. 그러나 쿼리를 실행할 때 :

select * 
from dbs.database1.dbo.table1 (or any of the database servers) 

dbs3의 기존 테이블을 쿼리 한 것처럼 결과를 반환합니다. 그것은 DBMS가 4 파트 이름 지정을 무시하고 4 파트 이름 지정 규칙에서 지정하려고하는 서버와 상관없이 dbs3에있는 테이블의 결과를 리턴하는 것과 같습니다. 어떤 아이디어가 여기에서 계속 될 수 있습니다. 서버가 링크 된 서버 목록에 나타납니다.

+1

sys.servers에서 'select name, data_source'는 무엇을 생성합니까? –

+1

4 개의 연결된 서버가 실제로 다른 서버에 연결되는지 확인 했습니까? –

+0

그것은 반환 DBS \t NULL DBS2 \t NULL DBS3 \t DBS3 DBS4 \t NULL – smsranger

답변

0

내용을 위반하지 않고 변경하거나 (이미 의견이 분분하다면) 링크 된 서버를 다시 만드는 것이 좋습니다. 연결된 서버가 다른 SQL 서버 인 경우, 이것은 대부분의 응용 프로그램에 적합합니다 (여전히 이후 불통 될 수있다) 기본 구성과 연결된 서버 정의를 생성

exec sp_dropserver 'dbs'; 
exec sp_addlinkedserver 'dbs'; 

할 수 있습니다.

+0

적절한 자격 증명을 사용하여 연결된 서버를 다시 생성하면이 문제가 해결됩니다. 이제 연결된 서버간에 작업 할 수 있도록 선택하십시오. – smsranger

+0

@smsranger : 이에 대한 후속 질문이있을 것입니다. :-) –

+0

놀랍게도 그것을 찍었습니다. 바람의 테이블 ;-) 고마워! – smsranger