하나 이상의 테이블에 있는 데이터를 참조 데이터베이스에 있는 데이터와 비교하고 동기화
이 항목은 다음 언어에 적용됩니다.
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 파일을 비교한 다음 업데이트 스크립트에 포함할 변경 내용을 지정할 수 있습니다.