하나 이상의 테이블에 있는 데이터를 참조 데이터베이스에 있는 데이터와 비교 및 동기화

‘원본’ 데이터베이스 및 ‘대상’ 데이터베이스의 데이터를 비교하고 비교할 테이블을 지정할 수 있습니다. 데이터를 검토하여 동기화할 변경 내용을 결정할 수 있습니다. 그런 후 대상을 업데이트해서 데이터베이스를 동기화하거나 업데이트 스크립트를 Transact-SQL 편집기 또는 파일로 내보낼 수 있습니다.

예를 들어 준비 서버를 프로덕션 데이터의 복사본으로 업데이트하기 위해 데이터베이스를 동기화할 수 있습니다. 또한 하나 이상의 테이블을 동기화하여 다른 데이터베이스의 참조 데이터로 채울 수 있습니다. 추가 확인을 위해 실행 테스트 전후에 데이터를 비교할 수도 있습니다.

두 데이터베이스의 데이터를 비교할 수는 있지만 데이터베이스 프로젝트 파일 또는 .dacpac은 데이터가 포함되지 않으므로 비교하도록 지정할 수 없습니다.

이 섹션에는 다음과 같은 정보가 포함되어 있습니다.

요구 사항

테이블 또는 뷰의 데이터를 비교할 때 원본 데이터베이스의 테이블 또는 뷰는 대상 데이터베이스의 테이블 또는 뷰와 일부 특성을 공유해야 합니다. 다음 조건을 충족하지 않는 테이블 및 뷰는 새 데이터 비교 마법사의 두 번째 페이지에 표시되지 않습니다.

  • 테이블은 호환 가능한 데이터 형식을 포함하는 열 이름이 일치해야 합니다.

    테이블, 뷰 및 소유자 이름은 대/소문자를 구분합니다.

  • 테이블에는 동일한 기본 키, 공 인덱스 또는 고유 제약 조건이 있어야 합니다.

  • 뷰에는 동일한 고유, 클러스터형 인덱스가 있어야 합니다.

  • 테이블과 뷰는 이름이 동일한 경우에만 서로 비교할 수 있습니다.

각 개체에는 해당하는 다른 개체를 확인하는 키 또는 인덱스가 포함됩니다. 각 테이블 또는 뷰에는 두 개 이상의 기본 키, 고유 인덱스 또는 고유 제약 조건이 있을 수 있습니다. 따라서 사용할 키, 인덱스 또는 제약 조건을 지정하는 것이 좋습니다.

일반 태스크

이 섹션에서는 이 시나리오를 지원하는 일반적인 작업에 대한 설명을 찾을 수 있습니다.

데이터 비교 방법을 제어하는 옵션을 설정합니다. 데이터를 비교할 때는 ID 열을 안전하게 무시하고, 트리거 및 외래 키를 사용하지 않도록 설정할 수 있습니다. 또한 업데이트 스크립트에서 기본 키, 인덱스 및 고유 제약 조건을 삭제할 수도 있습니다.

테이블의 데이터 비교 및 선택적으로 원본과 일치하도록 대상 업데이트: 비교할 원본 및 대상 데이터베이스를 지정하고 비교를 실행한 후에는 데이터 비교 창에서 결과를 봅니다. 차이점 세부 정보뿐만 아니라 데이터를 동기화하는 데 사용되는 업데이트 스크립트도 볼 수 있습니다. 두 데이터베이스 간의 차이점을 식별한 후에는 각 차이점에 대한 동작을 지정합니다. 그런 다음, 대상을 업데이트하거나 업데이트 스크립트를 Transact-SQL 편집기 또는 파일로 내보냅니다. 변경 내용을 적용하기 전에 사용자 또는 다른 사용자가 검토할 수 있도록 스크립트를 내보낼 수도 있습니다.

비교 결과 이해

다음 표에서는 데이터 비교 창의 5개 열에 대해 설명합니다.

메모
Object 테이블 또는 뷰의 이름, 업데이트를 기록하거나 업데이트 스크립트를 내보낼 때 대상을 동기화할지 여부를 나타내는 확인란이 표시됩니다. 데이터가 없는 테이블 또는 뷰에 대해서는 확인란이 제공되지 않습니다.
다른 레코드 대상에서 키가 동일하지만 원본과 데이터가 동일하지 않은 레코드 수가 표시됩니다. 업데이트를 기록하거나 업데이트 스크립트를 내보낼 때, 업데이트를 위해 표시된 레코드 수는 괄호로 묶입니다.
원본에만 있음 대상에 없고 원본에만 있는 레코드 수가 표시됩니다. 업데이트를 기록하거나 업데이트 스크립트를 내보낼 때, 추가를 위해 표시된 레코드 수는 괄호로 묶입니다.
대상에만 있음 원본에 없고 대상에만 있는 레코드 수가 표시됩니다. 업데이트를 기록하거나 업데이트 스크립트를 내보낼 때, 삭제를 위해 표시된 레코드 수는 괄호로 묶입니다.
동일한 레코드 대상에서 키가 동일하고 원본과 데이터가 동일한 레코드 수가 표시됩니다. 이러한 레코드는 업데이트를 기록하거나 업데이트 스크립트를 내보낼 때 업데이트되지 않습니다.

테이블 및 뷰 세부 정보

데이터 비교 창에서 테이블 또는 뷰를 클릭하면 테이블 또는 뷰에 있는 모든 행이 세부 정보 창에 표시됩니다. 세부 정보 창의 각 탭에는 서로 다른 범주(다른 레코드, 원본에만 있음, 대상에만 있음, 동일한 레코드)가 표시됩니다. 각 행에 대해 업데이트 스크립트로 변경하도록 포함할지 여부를 나타내는 해당 확인란을 선택하거나 지울 수 있습니다.

참고 항목

SQL Server Data Tools
방법: 스키마 비교를 사용하여 서로 다른 데이터베이스 정의 비교