다음을 통해 공유


연습: 두 데이터베이스의 데이터 비교

업데이트: 2007년 11월

이 연습에서는 두 데이터베이스의 데이터를 비교하고 차이를 통해 DML(데이터 조작 언어) 스크립트를 생성한 다음 해당 스크립트를 사용하여 소스의 데이터로 대상을 채웁니다.

이 연습에서는 다음 절차를 따릅니다.

  • 두 데이터베이스의 데이터 비교. 이 절차에서는 데이터의 차이를 확인하여 표에 표시하고 이러한 차이점을 표현하는 DML 스크립트를 생성합니다.

  • 대상 데이터베이스 업데이트. 이 절차에서는 소스와 일치하도록 대상을 업데이트할 수 있는 두 가지 방법을 보여 줍니다.

사전 요구 사항

해당 연습을 완료하려면 먼저 다음 제품을 설치해야 합니다.

  • Microsoft SQL Server 2000 또는 Microsoft SQL Server 2005

  • Visual Studio Team System Database Edition

이 연습을 시작하려면 먼저 연습: 두 데이터베이스의 스키마 비교에 나와 있는 절차의 단계를 따라야 합니다. 해당 연습을 마치면 두 개의 데이터베이스가 만들어집니다.

  • 소스인 Northwind에는 원래 구조체와 원래 데이터가 들어 있습니다.

  • 대상인 EmptyNW는 스키마 비교 연습에서 만든 데이터베이스입니다. EmptyNW에는 Northwind 데이터베이스의 스키마만 적용했으므로 데이터가 없습니다.

두 데이터베이스의 데이터 비교

이 단원에는 두 절차가 있습니다. 첫 번째 절차에서는 데이터베이스를 비교하고 결과를 생성합니다. 두 번째 절차에서는 해당 결과를 검사합니다.

두 데이터베이스의 데이터를 비교하려면

  1. 데이터 메뉴에서 데이터 비교를 가리킨 다음 새 데이터 비교를 클릭합니다.

    새 데이터 비교 마법사가 나타납니다. 이 마법사를 사용하여 데이터 비교를 구성합니다. 비교를 구성하려면 각 데이터베이스가 있는 서버, 해당 데이터베이스에 연결할 때 사용할 인증 형식 및 비교할 각 데이터베이스의 이름을 지정해야 합니다.

    또한 데이터 비교 창이 배경에 열리며 Visual Studio에서 DataCompare1과 같은 이름을 해당 창에 자동으로 할당합니다.

  2. 새 데이터비교 마법사에서 소스 데이터베이스인 Northwind를 선택합니다. 소스 데이터베이스 목록에 해당 이름이 Server.Northwind.dbo 형식으로 나타납니다.

    소스 데이터베이스 목록이 비어 있는 경우 새 연결을 클릭합니다. 연결 속성 대화 상자에서 Northwind 데이터베이스가 있는 서버와 해당 데이터베이스에 연결할 때 사용할 인증 형식을 확인합니다. 그런 다음 확인을 클릭하여 연결 속성 대화 상자를 닫고 새 데이터 비교 마법사로 돌아갑니다.

  3. 대상 데이터베이스인 EmptyNW를 선택합니다. 대상 데이터베이스 목록에 해당 이름이 Server.EmptyNW.dbo 형식으로 나타납니다.

    대상 데이터베이스 목록이 비어 있는 경우 새 연결을 클릭합니다. 연결 속성 대화 상자에서 EmptyNW 데이터베이스가 있는 서버와 해당 데이터베이스에 연결할 때 사용할 인증 형식을 확인합니다. 그런 다음 확인을 클릭하여 연결 속성 대화 상자를 닫고 새 데이터 비교 마법사로 돌아갑니다.

  4. 비교 결과에 나타나는 레코드를 제한하려면 고급 데이터 비교 옵션을 지정할 수 있습니다. 이 연습에서는 기본값을 적용하여 모든 레코드를 표시합니다.

  5. 다음을 클릭합니다.

    새 데이터 비교 마법사의 두 번째 페이지에서 비교할 테이블과 뷰를 구체적으로 선택할 수 있습니다. 데이터베이스의 모든 테이블은 테이블 노드에 나열됩니다. 개별 테이블을 확장하여 포함된 열을 볼 수 있습니다. 기본적으로 모든 테이블과 열이 선택되며 이에 따라 모든 테이블과 열이 비교됩니다.

    참고:

    비교할 테이블과 뷰를 사용자 지정하려는 경우 다음 대신 마침을 클릭할 수 있습니다.

  6. 특정 테이블이나 열을 제외하려면 해당 확인란의 선택을 취소합니다. 특정 테이블이나 열을 포함하려면 해당 확인란을 선택합니다.

  7. 비교를 시작하려면 마침을 클릭합니다.

    비교가 시작됩니다.

    참고:

    데이터 비교 도구 모음에서 중지를 클릭하여 진행 중인 데이터 비교 작업을 중지할 수 있습니다.

    비교가 완료되면 두 데이터베이스 간의 데이터 차이가 데이터 비교 창의 표에 나타납니다. 이러한 결과를 보는 방법에 대한 자세한 내용은 다음 절차를 참조하십시오.

    이제 소스의 데이터와 일치하게 대상의 데이터를 업데이트하도록 선택할 수 있습니다. 자세한 내용은 대상 데이터베이스 업데이트를 참조하십시오.

데이터 비교 결과를 보려면

  1. [dbo].[Orders] 행을 클릭합니다.

    레코드 뷰 창의 탭 이름이 다른 레코드(0), 소스에서만(830), 대상에서만(0), 동일한 레코드(0) 등과 같이 각 레코드 형식의 수를 포함하도록 변경됩니다.

  2. 소스에서만(830) 탭을 클릭합니다.

    소스에서만(830) 탭에서 각 행 및 열은 [dbo].[Orders] 테이블의 행이나 열에 해당합니다.

    참고:

    이러한 탭을 사용하여 대상으로 전파되는 데이터를 제어할 수 있습니다. 자세한 내용은 대상 데이터베이스에 업데이트 쓰기를 참조하십시오.

대상 업데이트

데이터 비교 창에서 직접 또는 T-SQL(Transact SQL) 편집기를 사용하여 대상의 데이터를 업데이트할 수 있습니다. 이 단원에서는 두 가지 옵션에 대해 모두 설명합니다.

데이터를 비교하면 차이가 데이터 비교 창에 표 형식으로 나타납니다. 개체 열에 있는 각 테이블 또는 뷰의 확인란은 해당 개체가 업데이트 작업에 포함될 것인지 여부를 나타냅니다. 열은 데이터 비교가 나타내는 형식의 변경 내용을 보여 줍니다. 이 경우 기본 개체를 제외한 대상이 비어 있기 때문에 소스에서만 열에 적용될 변경 내용이 표시됩니다.

데이터 비교 옵션을 사용하여 업데이트 쓰기

데이터 비교 창에 나타나는 업데이트 작업을 사용하여 대상의 데이터를 업데이트하려면 다음 절차를 사용합니다.

  • 대상 데이터베이스 업데이트

T-SQL 편집기를 사용하여 업데이트 쓰기

업데이트 스크립트를 내보내고 검사하며 변경한 다음 이를 사용하여 대상을 변경하려면 다음 절차를 사용합니다.

  • 동기화 스크립트 검사 및 실행

대상 데이터베이스 업데이트

대상을 업데이트하려면

  1. 데이터 비교 창에서 [dbo].[Products]를 클릭합니다.

  2. 세부 정보 창에서 대상에서만을 클릭합니다.

    처음 두 행의 이름은 Chai와 Chang입니다.

    세부 정보 창의 상태 표시줄은 소스에서 누락된 레코드 수와 대상에서 삭제될 레코드 수를 나타냅니다. 이 두 숫자는 일치합니다.

  3. Chai 행에 있는 확인란의 선택을 취소합니다.

    세부 정보 창의 상태 표시줄에서 삭제될 레코드 수가 하나 줄어들게 되므로 소스에서 누락된 레코드 수와 더 이상 일치하지 않게 됩니다.

  4. 데이터 비교 창에서 업데이트 쓰기를 클릭합니다.

    데이터 비교 창에 나열되었던 업데이트 작업이 구현됩니다. 이 동기화로 인해 소스와 일치하도록 대상이 변경됩니다.

    참고:

    대상이 업데이트되는 동안 대상에 쓰기 중지를 클릭하여 작업을 취소할 수 있습니다.

동기화 스크립트 검사 및 실행

동기화 스크립트를 검사하려면

  1. 데이터 비교 창에서 편집기로 내보내기를 클릭합니다.

    온라인 모드에서 T-SQL 편집기가 열리고 T-SQL 스크립트가 표시됩니다. 이 창에는 Server.Northwind - DataUpdate_EmptyNW_1.sql과 같은 이름이 지정됩니다. 이 창에 대한 쓰기 권한이 있으므로 스크립트를 변경할 수 있습니다. 변경한 내용이 있으면 완료 시 저장을 클릭합니다.

  2. 두 데이터베이스의 데이터를 동기화하려면 SQL 실행을 클릭하거나 F5 키를 눌러 이 스크립트를 실행합니다.

    참고:

    스크립트가 실행되는 동안 쿼리 실행 취소를 클릭하거나 Alt+Break를 눌러 작업을 취소할 수 있습니다.

참고 항목

작업

방법: 두 데이터베이스의 스키마 비교

방법: 두 데이터베이스의 데이터 비교

개념

Database Edition의 용어 개요

기타 리소스

데이터베이스 스키마 비교