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

이 항목은 다음 언어에 적용됩니다.

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional 

Visual Studio Express

항목이 적용됨 항목이 적용됨 항목이 적용되지 않음 항목이 적용되지 않음

Visual Studio를 사용하면 소스 데이터베이스와 대상 데이터베이스의 데이터를 비교할 수 있으며 비교할 테이블을 지정할 수 있습니다. 이 데이터를 검토하고 동기화할 변경 내용을 결정할 수 있습니다. 그런 다음 대상을 업데이트하여 데이터베이스를 동기화하거나, 업데이트 스크립트를 Transact-SQL 편집기 또는 파일로 내보낼 수 있습니다.

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

두 데이터베이스의 데이터를 비교할 수 있지만, 데이터베이스 프로젝트(.dbproj)나 .dbschema 파일은 데이터를 포함하고 있지 않으므로 비교할 항목으로 지정할 수 없습니다.

요구 사항

테이블이나 뷰의 데이터를 비교할 때 소스 데이터베이스의 테이블 또는 뷰는 대상 데이터베이스의 테이블 또는 뷰와 여러 특성을 공유해야 합니다. 다음 조건에 맞지 않는 테이블과 뷰는 비교되지 않으며 새 데이터 비교 마법사의 두 번째 페이지에 나타나지 않습니다.

  • 테이블의 열 이름은 일치해야 하며 호환되는 데이터 형식을 가져야 합니다.

    테이블, 뷰 및 소유자 이름은 대/소문자를 구분합니다. 스키마에 대한 자세한 내용은 데이터베이스 스키마 비교 및 동기화를 참조하십시오.

  • 테이블의 기본 키, 고유 인덱스 또는 UNIQUE 제약 조건이 같아야 합니다.

  • 뷰의 클러스터된 고유 인덱스가 같아야 합니다.

  • 이름이 같은 경우에만 테이블을 뷰와 비교할 수 있습니다.

각 개체에는 대응되는 다른 개체를 확인하는 키나 인덱스가 있습니다. 그러나 각 테이블이나 뷰에는 둘 이상의 기본 키, 고유 인덱스 또는 UNIQUE 제약 조건이 있을 수 있습니다. 따라서 사용할 키, 인덱스 또는 제약 조건을 지정할 수 있습니다.

일반 작업

다음 표에서는 이 시나리오를 지원하는 일반적인 작업에 대한 설명과 해당 작업을 성공적으로 완료하는 방법에 대한 자세한 내용을 볼 수 있는 링크를 보여 줍니다.

일반 작업

지원 내용

실습: 기초 연습 과정을 따라 두 데이터베이스의 데이터를 비교하는 방법을 익힐 수 있습니다.

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

테이블의 데이터 비교 및 필요한 경우 소스와 일치하도록 대상 업데이트: 비교할 소스 및 대상 데이터베이스를 지정하고 비교를 실행한 후 데이터 비교 창에서 결과를 볼 수 있습니다. 차이점을 자세히 볼 수 있을 뿐 아니라 데이터를 동기화하는 데 사용할 수 있는 업데이트 스크립트도 볼 수 있습니다. 두 데이터베이스 간의 차이점을 확인한 후 각 차이점에 대한 동작을 지정할 수 있습니다. 그런 다음 대상을 업데이트하거나 업데이트 스크립트를 Transact-SQL 편집기 또는 파일로 내보낼 수 있습니다. 변경 내용을 적용하기 전에 사용자나 다른 사용자가 검토할 수 있도록 스크립트를 내보낼 수도 있습니다.

문제 해결: 데이터베이스 스키마를 비교하고 동기화할 때 발생할 수 있는 일반적인 문제를 해결하는 방법에 대해 알아보십시오.

비교 결과 이해

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

설명

개체

테이블 또는 뷰의 이름과, 업데이트를 쓰거나 업데이트 스크립트를 내보낼 때 대상이 동기화되는지 여부를 나타내는 확인란이 표시됩니다. 데이터가 들어 있지 않은 테이블이나 뷰의 경우에는 이 확인란을 사용할 수 없습니다.

다른 레코드

대상 레코드 중 소스 레코드와 키는 동일하지만 데이터가 동일하지 않은 레코드의 개수가 표시됩니다. 업데이트를 쓰거나 업데이트 스크립트를 내보낼 때 업데이트될 것으로 표시된 레코드의 수는 괄호로 묶입니다.

소스에서만

소스 레코드 중 대상에는 없는 레코드의 개수가 표시됩니다. 업데이트를 쓰거나 업데이트 스크립트를 내보낼 때 추가될 것으로 표시된 레코드의 수는 괄호로 묶입니다.

대상에서만

대상 레코드 중 소스에는 없는 레코드의 개수가 표시됩니다. 업데이트를 쓰거나 업데이트 스크립트를 내보낼 때 삭제될 것으로 표시된 레코드의 수는 괄호로 묶입니다.

동일한 레코드

대상 레코드 중 소스 레코드와 키 및 데이터가 동일한 레코드의 개수가 표시됩니다. 이러한 레코드는 업데이트를 쓰거나 업데이트 스크립트를 내보낼 때 업데이트되지 않습니다.

테이블 및 뷰 정보

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

관련 시나리오

  • 데이터베이스 스키마 비교 및 동기화
    데이터베이스의 스키마, 데이터베이스 프로젝트(.dbproj) 또는 .dbschema 파일을 비교한 다음 업데이트 스크립트에 포함할 변경 내용을 지정할 수 있습니다.