2016-09-23 2 views
-1

Server1 데이터베이스의 테이블을 비교해야합니다. dbo.X 및 Server2, 데이터베이스 B dbo.Y. 표 X와 표 Y는 모두 동일한 값을 포함합니다.다른 SQL 서버의 테이블을 비교할 수 있습니까?

그래서 두 테이블 모두 모든 행과 열에 동일한 값이 들어 있는지 확인해야합니다. 그것을 할 수 있습니까?

감사합니다.

+1

물론 가능합니다. – dfundako

+1

'select ... from 전체 외부 조인 B on B.primary_key = A.primary_key A.primary_key가 null이거나 B.primary_key가 null이거나 A.not_null_column <> B.not_null_column 또는 coalesce (A.null_column, '! @@ $ %^') <> 합쳐서 (B.null_column,'! @ # $ %^') ...' – shawnt00

답변

1

당신이 SSIS/비주얼 스튜디오와 같은 어떤 도구 다음 연결된 서버가 필요합니다을 사용하지 않으려면.

Select * FROM Server1.databaseA.dbo.X 
EXCEPT 
Select * FROM Server2.databaseB.dbo.Y 

EXCEPT는 왼쪽 입력 쿼리에서 올바른 입력 쿼리로 출력되지 않는 별개의 행을 반환합니다.

EXCEPT

+0

내 server1이 1.0.0.1이고 server2가 1.0.3.4이면 '선택 * 1.0.0.1.A.dbo.X'에서 'EXCEPT' '선택 * 1.0.3.4.B.dbo.Y' 올바른 방법입니까? – user3174886

+0

예, 연결된 서버가 설정된 경우. 'X EXECEPT Y'와'Y EXCEPT X' 두 가지를 모두 실행해야합니다. 두 레코드가 모두 0 레코드를 반환하면 테이블에 동일한 레코드가 포함됩니다. – p2k

0

물론, 연결된 서버를 만들어서 할 수 있습니다. 그것을 만들기 위해이 설명서를 따르십시오 : Creating Linked Servers

을이 같은 다른 서버에 SQL-쿼리를 만들 수있게됩니다 이후 :

SELECT name FROM [SRVR002\ACCTG].master.sys.databases ; 
0

좀 더 쉬운 방법이 있습니다 당신은 Visual Studio를 설치 한 경우 . 스키마와 데이터를 모든 서버와 비교할 수있는 옵션이 있으며 도구 내에서 대상 서버를 업데이트 할 수 있으므로 매우 효율적입니다.

으로 VisualStudio -> 도구 -> SQL 서버 -> 데이터 비교

관련 문제