2010-05-18 7 views
4

동적으로 생성 된 쿼리에서 두 개의 서로 다른 서버를 쿼리해야합니다.두 개의 다른 서버 쿼리

기본적으로 한 서버에서 데이터를 가져 와서 처리하고 다른 서버에 삽입합니다.

유일한 문제는 두 상황에서 모두 작동하는지 확인해야한다는 것입니다. 원본 데이터베이스와 대상 데이터베이스가 모두 동일한 서버에 있고 그렇지 않은 경우.

SQL Server에서 연결된 서버를 사용하는 개념을 이해하지만 두 가지 대안, 동일한 서버 및 다른 서버를 고려할 방법을 생각할 수 없습니다.

약간의 도움이 필요합니까?

답변

4

두 연결된 서버에서 (로컬 및 원격) 두 테이블의 완전한 테이블 이름

SELECT *를 사용하여 서버 당 하나의 ... 필요하지 않습니다.

: 같은 자체에 대한 쿼리를 가질 수

SELECT * FROM SQLServerB.DatabaseC.dbo.TableName 

이제 서버 B처럼 LinkedSQLServerB하는

SELECT * FROM SQLServerA.DatabaseA.dbo.TableName 

그리고 질의 : 예

PhysicalServerA 
    SQLServerA 
     DatabaseA 
     DatabaseB 
    LinkedSQLServerB // A linked server to SQL Server B 

PhysicalServerB 
    SQLServerB 
     DatabaseC 
     DatabaseD 
    LinkedSQLServerA // A linked Server to SQL Server A 

이제 서버 A는 같은 자체에 쿼리를 할 수 있습니다

SELECT * FROM SQLServerB.DatabaseC.dbo.TableName 

Lin kedSQLServerA like

SELECT * FROM SQLServerA.DatabaseA.dbo.TableName 
+0

아마도 연결된 서버를 사용하는 개념을 잘 이해하지 못했을 것입니다. 하지만 어쨌든 여기에 게시하기 전에 로컬 서버의 로컬 서버에있는 로컬 서버의 정규화 된 이름을 사용하려고 시도했지만 작동하지 않아서 해당 종류의 구문이 로컬 서버가 아닌 연결된 서버에만 허용되었다고 생각하게되었습니다. . 당신의 대답은 아주 분명했습니다. 고마워요! – Smur

1

SERVER.DATABASE.SCHEMA.TABLE

+0

두 개의 연결된 서버가 하나만 있으면됩니다. Server.Database.Schema.Table 표기법을 사용하는 한 원격 서버에 연결된 서버 만 필요합니다. –

+0

감사합니다. John Hartsock – Germ

관련 문제