SQL Server Management Studio 스키마 비교(미리 보기)

적용 대상: SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

스키마 비교를 사용하면 두 데이터베이스 정의를 비교할 수 있습니다. 비교의 원본과 대상은 연결된 데이터베이스, SQL 데이터베이스 프로젝트 또는 .dacpac 파일의 조합일 수 있습니다. 비교가 완료되면 결과가 대상을 원본과 동일하게 만드는 작업 집합으로 표시됩니다. 데이터베이스 모델 간의 차이점은 소스 제어 차이처럼 표시됩니다.

스키마 비교 대상이 SQL 프로젝트 또는 데이터베이스인 경우 스키마 비교 인터페이스에서 직접 대상을 업데이트하거나 동일한 효과가 있는 업데이트 스크립트를 생성할 수 있습니다.

원본과 대상을 비교한 모습을 보여 주는 SQL Server Management Studio의 스키마 비교 창 스크린샷입니다.

스키마 비교는 다음과 같은 기능을 제공합니다.

  • .dacpac 파일, 데이터베이스 또는 SQL 데이터베이스 프로젝트 간의 스키마를 비교합니다.
  • 결과를 원본과 대상을 일치시킬 작업 집합으로 봅니다.
  • 결과에 나열된 작업을 선택적으로 제외합니다.
  • 비교 범위를 제어하는 옵션을 설정합니다.
  • 대상에 직접 변경 내용을 적용하거나 나중에 변경 내용을 적용하는 스크립트를 생성합니다.
  • 다시 사용할 파일로 .scmp 비교를 저장합니다.

사전 요구 사항

스키마 비교 실행

여러 진입점에서 SSMS에서 스키마 비교를 열 수 있습니다.

오브젝트 탐색기

개체 탐색기에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 태스크>시마 비교(미리 보기)를 선택합니다. 선택한 데이터베이스가 자동으로 원본으로 설정됩니다.

솔루션 탐색기

솔루션 탐색기 SQL 데이터베이스 프로젝트를 마우스 오른쪽 단추로 클릭하고 시마 비교(미리 보기) 선택합니다. 선택한 프로젝트가 자동으로 원본으로 설정됩니다.

비고

솔루션 탐색기 SQL 데이터베이스 프로젝트를 사용하려면 데이타베이스 DevOps 워크로드 필요합니다.

도구 메뉴

도구 메뉴에서 스키마 비교(미리 보기)를 선택합니다. 미리 설정된 원본 또는 대상 없이 스키마 비교 창이 열립니다.

원본 및 대상 선택

스키마 비교가 열리면 비교할 원본 및 대상을 선택합니다. 각각은 연결된 데이터베이스, .dacpac 파일 또는 SQL 데이터베이스 프로젝트일 수 있습니다.

 데이터베이스, 데이터 계층 애플리케이션(.dacpac) 및 데이터베이스 Project 선택 항목을 보여 주는 원본 및 대상 선택 옵션의 스크린샷.

  • 데이터베이스: 실행 중인 데이터베이스 인스턴스에 연결합니다. 원본은 대상 변경의 기준으로 사용할 데이터베이스 정의입니다.
  • 데이터 계층 애플리케이션(.dacpac): 컴파일된 .dacpac 파일로 이동합니다. A .dacpac 는 데이터베이스 스키마의 스냅샷을 포함합니다.
  • 데이타베이스 Project: 열려 있는 SQL 데이터베이스 project 선택합니다. 데이터베이스 DevOps 워크로드가 필요합니다.

대상은 평가할 데이터베이스 정의이며 변경 내용을 적용할 수 있습니다.

비교 실행 및 검토

도구 모음에서 비교 를 선택하여 비교 프로세스를 시작합니다.

비교가 완료되면 결과 창에 원본과 대상 간의 구조적 차이가 표시됩니다. 비교 결과는 삭제, 변경 또는 추가와 같은 모든 차이점을 작업별로 그룹화합니다.

각 행은 원본 또는 대상 스키마(또는 둘 다)의 개체와 대상 개체를 원본 개체와 동일하게 만들기 위해 프로세스가 대상 스키마에서 수행하는 작업을 식별합니다. 개체의 이름을 바꾸거나 새 스키마로 이동하면 원본 이름과 대상 이름이 다릅니다. 원본 이름이 굵은 글꼴로 표시되어 차이점을 강조 표시합니다.

기본적으로 결과 목록은 두 스키마에서 동일하거나 업데이트에 지원되지 않는 개체(예: 기본 제공 개체)를 숨깁니다. 도구 모음에서 적절한 필터 단추를 선택하여 이러한 개체를 표시합니다.

그룹화 기본 설정을 변경하려면 도구 모음에서 그룹 결과 드롭다운 목록을 선택합니다. 형식을 선택하여 테이블, 뷰 또는 저장 프로시저와 같은 개체 형식별로 결과를 그룹화합니다.

차이점 제외

기본적으로 대상 업데이트 작업에는 범위의 모든 차이점이 포함됩니다. 동기화하지 않으려는 차이점을 제외하려면 각 행의 Include 열을 지웁니다. 행이 즉시 회색으로 표시됩니다. 스키마 비교에서 대상을 업데이트하는 경우 보류 중인 변경 내용에 대해서는 해당 행을 고려하지 않습니다.

제외된 행에 행에서 참조하는 테이블 행과 같은 종속 개체가 있는 경우 제외된 행은 사용하지 않도록 설정되지만 모든 종속 행의 선택을 취소할 때까지 해당 확인란은 선택 취소되지 않습니다. 행의 이름을 바꾸거나 다른 스키마로 이동하는 등 행을 리팩터링하는 경우 해당 행과 해당 종속 자식 행에 대해 확인란이 비활성화됩니다.

비교 옵션

도구 모음에서 옵션을 선택하여 비교할 개체와 무시되는 차이점 유형을 구성합니다. 옵션은 다음과 같습니다.

  • 공백 무시
  • 파티션 구성표 무시
  • 열 순서를 무시

테이블, 저장 프로시저, 인덱스, 권한 및 사용자 정의 형식과 같이 비교에 포함되는 개체 형식을 구성할 수도 있습니다.

변경 내용 적용

대상의 스키마를 업데이트하려면 다음 두 가지 옵션이 있습니다.

  • 적용: 스키마 비교 창에서 대상 데이터베이스 또는 프로젝트에 직접 변경 내용을 적용합니다.
  • 스크립트 생성: 나중에 검토하고 실행할 수 있는 동일한 변경 내용을 캡처하는 Transact-SQL 스크립트를 생성합니다.

생성된 스크립트가 Transact-SQL 편집기에 표시되며, 여기서 이를 검토하고 데이터베이스에 대해 실행할 수 있습니다.

비교 저장

스키마 비교에 대한 비교 정의를 .scmp 파일이라고 하는 파일로 저장할 수 있습니다. 이 파일은 비교 설정에 대한 정보를 XML에 저장하고 다음을 포함합니다.

  • 원본 및 대상 연결 정보
  • 비교 옵션
  • 제외된 개체 형식

나중에 동일한 비교를 .scmp 다시 실행하거나 다른 사용자와 비교를 공유하려면 SSMS에서 파일을 열 수 있습니다.