다음을 통해 공유


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

업데이트: 2007년 11월

이 연습에서는 Visual Studio Team System Database Edition을 사용하여 두 데이터베이스의 스키마를 비교합니다. 스키마 비교 작업을 수행하면 차이점을 통해 DDL(데이터 정의 언어) 스크립트도 생성됩니다. 이 파일을 사용하여 대상의 스키마를 소스의 스키마와 동기화할 수 있습니다. 자세한 내용은 데이터베이스 스키마 비교를 참조하십시오.

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

  • 빈 데이터베이스 만들기. 소스의 경우 Northwind 데이터베이스를 사용하며 대상의 경우 빈 데이터베이스를 만듭니다.

  • 두 데이터베이스의 스키마 비교. 스키마를 비교하여 데이터베이스 간의 구조적 차이를 찾아 표 형식으로 표시하고 이러한 차이점을 표현하는 DDL 스크립트를 생성합니다.

  • 동기화 스크립트 검사. DDL 스크립트를 확인하고 편집한 후에 실행할 수 있습니다.

  • 대상 데이터베이스 업데이트. DDL 스크립트를 실행하여 대상의 스키마를 변경할 수 있습니다.

사전 요구 사항

다음 제품을 설치해야 합니다.

  • Microsoft SQL Server 2000 또는 Microsoft SQL Server 2005

  • Database Edition 

비교할 두 개의 데이터베이스가 있어야 합니다. 먼저 소스로는 Northwind 데이터베이스를 사용하고 대상으로 빈 데이터베이스를 만듭니다. 다음 절차에서는 해당 단계에 대해 설명합니다.

빈 데이터베이스 만들기

빈 데이터베이스를 만들려면 다음 단계를 따릅니다.

빈 데이터베이스를 만들려면

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

    새 프로젝트 대화 상자가 나타납니다.

  2. SQL Server 2000 데이터베이스를 만들려는 경우 SQL Server 2000 마법사를 클릭합니다. SQL Server 2005 데이터베이스를 만들려는 경우에는 SQL Server 2005 마법사를 클릭합니다.

  3. 이름에 EmptyNW를 입력합니다.

  4. 나머지 필드의 기본값을 그대로 둔 다음 확인을 클릭합니다.

    새 데이터베이스 프로젝트 마법사가 나타납니다.

  5. 빌드/배포 구성을 클릭합니다.

  6. 대상 연결에서 찾아보기 단추를 클릭하고 빈 데이터베이스를 만들 데이터베이스 서버에 대한 연결을 지정합니다.

  7. 마침을 클릭합니다.

    EmptyNW라는 데이터베이스 프로젝트가 생성되어 솔루션 탐색기에 나타납니다.

  8. 솔루션 탐색기에서 EmptyNW 데이터베이스 프로젝트를 클릭합니다.

  9. 빌드 메뉴에서 ProjectName 배포를 클릭합니다.

    데이터베이스 프로젝트가 빌드되어 지정한 서버에 배포됩니다.

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

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

  1. Database Edition을 엽니다.

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

    스키마비교 대화 상자가 나타납니다. 이 대화 상자를 사용하여 소스와 대상을 지정합니다. 이 대화 상자에서 소스와 대상이 있는 서버, 각 데이터베이스의 이름 및 각 데이터베이스에 연결할 때 사용할 인증 형식을 확인합니다.

    또한 스키마 비교 창이 배경에 열리며 Database Edition에서 SchemaCompare1 등의 이름을 해당 창에 자동으로 할당합니다.

  3. 소스 데이터베이스의 서버 이름에 Northwind 데이터베이스가 있는 서버의 이름을 입력합니다.

  4. 데이터베이스 이름 선택 또는 입력에 Northwind를 입력합니다.

  5. 대상 데이터베이스이름에 EmptyNW 데이터베이스가 있는 서버의 이름을 입력합니다. 이 이름은 소스에 입력한 서버와 같아야 합니다.

  6. 데이터베이스 이름 선택 또는 입력에 EmptyNW를 입력합니다.

  7. 마침을 클릭합니다.

    스키마 비교가 시작됩니다.

    참고:

    데이터 메뉴를 열고 스키마비교를 가리킨 다음 스키마 비교 중지를 클릭하여 진행 중인 스키마 비교 작업을 중지할 수 있습니다.

    참고:

    차이로 간주할 내용을 결정하고 업데이트 스크립트를 만드는 방법을 변경하는 옵션을 구성할 수 있습니다. 자세한 내용은 방법: 데이터베이스 스키마 비교 옵션 설정을 참조하십시오.

    비교가 완료되면 두 데이터베이스 간의 구조적 차이가 스키마 비교 창의 표에 나타납니다. 이 표에는 두 데이터베이스 중 하나에 있는 각 데이터베이스 개체에 대한 행이 표시됩니다. 데이터베이스 개체는 테이블, 뷰, 저장 프로시저, 역할 등의 형식별로 구성됩니다.

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

대상의 스키마를 업데이트하는 방법에는 스키마 비교 창에서 직접 스키마를 업데이트하거나 T-SQL 편집기를 사용하는 두 가지 방법이 있습니다. 이 단원에서는 두 가지 옵션에 대해 모두 설명합니다.

스키마 비교를 실행한 다음에는 구조적 차이가 스키마 비교 창의 표에 나타납니다. 이 표에는 Northwind(소스 데이터베이스) 열의 각 개체에 대해 두 데이터베이스의 해당 개체를 동기화하는 데 필요한 업데이트 작업 열의 작업이 표시됩니다. 이 경우 대상은 기본 개체를 제외하고 비어 있으므로 상태 열에 대부분 최신 상태가 포함되며 업데이트 작업 열에는 대부분 만들기 작업이 포함됩니다.

대상에 업데이트 쓰기

스키마 비교 창에 나열된 업데이트 작업을 사용하여 대상의 스키마를 업데이트할 수 있습니다. 이 작업을 수행하려면 대상 데이터베이스에 업데이트 쓰기의 단계를 수행하십시오.

스크립트 보기 및 대상에 업데이트 쓰기

업데이트 스크립트를 내보내고 검사하여 가능한 경우 변경한 다음 결과 스크립트를 사용하여 대상 데이터베이스를 동기화할 수 있습니다. 이 작업을 수행하려면 동기화 스크립트 검사 및 실행의 단계를 수행하십시오.

대상 데이터베이스에 업데이트 쓰기

대상 데이터베이스에 업데이트를 쓰려면

  1. (선택 사항이지만 권장) 대상 데이터베이스를 백업합니다.

    일부 스키마 변경 내용은 트랜잭션 처리할 수 없으므로 업데이트 작업을 시작한 다음 취소하는 경우 데이터가 손실될 수 있습니다. 예를 들어 대상 데이터베이스의 테이블이 재작성을 위한 준비 과정에서 삭제될 수 있습니다. 이때 업데이트를 취소하면 테이블이 손실될 수 있습니다.

  2. 스키마 비교 도구 모음에서 업데이트 쓰기를 클릭합니다.

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

    참고:

    업데이트 작업이 진행 중일 때 데이터 메뉴를 열어 스키마 비교를 가리킨 다음 대상에 쓰기 중지를 클릭하여 해당 작업을 취소할 수 있습니다.

    참고:

    비교 작업은 자동으로 새로 고쳐지지 않습니다. 선택한 업데이트가 적용되었는지 확인하기 위해 비교 작업을 다시 실행하려는 경우에는 스키마 비교 도구 모음에서 새로 고침 단추를 클릭해야 합니다.

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

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

  1. 데이터 메뉴에서 스키마 비교, 내보내기를 차례로 가리킨 다음 편집기를 클릭합니다. 스키마 비교 도구 모음에서 편집기로 내보내기를 클릭할 수도 있습니다.

    온라인 모드에서 T-SQL 편집기가 열리고 T-SQL 동기화 스크립트가 표시됩니다. 이 창에는 Server.Northwind - SchemaUpdate_EmptyNW_1.sql과 같은 이름이 지정되며 T-SQL 스크립트가 표시됩니다. 이 스크립트는 My Documents/Visual Studio 2005/My Projects 폴더의 파일에 있습니다. 이 창에 대한 쓰기 및 읽기 권한이 모두 있으므로 스크립트를 변경할 수 있습니다. 변경하는 경우 파일 메뉴를 연 다음 저장을 클릭합니다.

  2. 두 데이터베이스의 스키마를 동기화하려면 스키마 비교 도구 모음에서 SQL 실행을 클릭하거나 F5 키를 눌러 이 스크립트를 실행합니다.

    참고:

    비교 작업은 자동으로 새로 고쳐지지 않습니다. 선택한 업데이트가 적용되었는지 확인하기 위해 비교 작업을 다시 실행하려는 경우에는 스키마 비교 도구 모음에서 새로 고침 단추를 클릭해야 합니다.

다음 단계

이제 두 데이터베이스의 데이터를 비교할 수 있습니다. 자세한 내용은 방법: 두 데이터베이스의 데이터 비교를 참조하십시오.

참고 항목

작업

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

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

개념

Database Edition의 용어 개요

기타 리소스

데이터베이스 데이터 비교