데이터베이스 프로젝트에 여러 데이터베이스 병합

데이터베이스 프로젝트를 만들고, 각 소스 데이터베이스에서 이 프로젝트로 데이터베이스 개체를 가져온 다음, 이 프로젝트를 단일 데이터베이스로 배포하여 여러 데이터베이스를 병합할 수 있습니다. 프로젝트를 만든 후에는 일반적으로 첫 번째 데이터베이스에서 모든 개체를 가져옵니다. 그런 다음 각 후속 데이터베이스의 스키마를 프로젝트의 스키마와 비교하고 가져올 개체를 지정합니다. 또한 데이터베이스 프로젝트의 스키마를 업데이트할 때 이미 가져온 개체를 삭제하는 대신 건너뛰도록 지정해야 합니다.

여러 데이터베이스에서 개체 가져오기

여러 데이터베이스에서 개체를 가져오기 전에 다음과 같은 추가 문제를 고려해야 합니다.

파일 및 파일 그룹

기본적으로 각 데이터베이스에 대해 정의된 모든 파일 및 파일 그룹을 데이터베이스 프로젝트로 가져오게 됩니다. 이러한 파일을 가져오지 않으려면 다른 개체를 가져올 때 해당 파일을 건너뛰도록 지정해야 합니다. 예를 들어 가져올 개체가 있는 첫 번째 데이터베이스에서만 파일 및 파일 그룹을 가져올 수 있습니다.

이름 충돌

이미 가져온 개체와 이름이 같은 데이터베이스 개체를 가져올 경우 이미 가져온 개체가 덮어쓰입니다. 두 개체를 모두 유지하려면 두 번째 개체를 가져오기 전에 둘 중 적어도 하나의 이름을 바꿔야 합니다.

전체 텍스트 카탈로그

전체 텍스트 카탈로그를 데이터베이스 간에 이동할 경우 이 카탈로그와 연결된 경로가 유효하지 않을 수 있습니다. 따라서 전체 텍스트 카탈로그가 있는 데이터베이스를 병합할 경우에는 데이터베이스 프로젝트를 배포하기 전에 카탈로그 속성을 확인해야 합니다.

일반 작업

일반 작업

지원 내용

데이터베이스 프로젝트에 대한 자세한 내용: 데이터베이스 프로젝트를 사용하여 스키마 변경 내용을 관리하는 방법에 대한 기본 개념을 알아보십시오.

데이터베이스 프로젝트 만든 후 첫 번째 데이터베이스에서 개체 및 설정 가져오기: 마법사를 사용하여 프로젝트를 만들고 프로젝트 설정을 구성하고 스키마를 가져올 수 있습니다. 또한 나중에 개체를 가져오려는 경우나 가져올 개체가 있는 첫 번째 데이터베이스에 액세스할 수 있는 권한이 없는 경우 빈 데이터베이스 프로젝트를 만들 수 있습니다.

다른 데이터베이스를 프로젝트에 병합: 후속 소스 데이터베이스의 스키마를 데이터베이스 프로젝트의 스키마와 비교할 수 있습니다. 가져오지 않을 개체나 이미 가져온 개체에 대해서는 다른 개체를 가져올 때 해당 개체를 삭제하거나 업데이트하는 대신 건너뛰도록 지정해야 합니다. 가져올 개체에 대해서는 해당 개체를 업데이트하도록 지정해야 합니다. 프로젝트에 병합할 각 데이터베이스에 대해 이 과정을 반복합니다.

데이터 생성 계획 업데이트: 병합할 하나 이상의 데이터베이스에 데이터 생성 계획이 연결되어 있는 경우 이 계획을 프로젝트에 추가할 수 있습니다. 각 계획을 추가한 후에는 추가한 계획이 업데이트된 데이터베이스 스키마와 동기화되도록 계획을 열어야 합니다. 결합된 데이터베이스에 대한 데이터 생성 계획을 만들 수도 있습니다.

데이터베이스 단위 테스트 업데이트: 병합할 데이터베이스에 대한 기존 데이터베이스 단위 테스트가 있는 경우 이 테스트에서 올바른 연결 문자열을 사용하도록 테스트 구성을 업데이트해야 합니다. 이 구성에 대해 데이터베이스 스키마와 데이터 생성 계획을 업데이트할 수도 있습니다.

데이터베이스 스키마를 버전 제어에서 관리: 모든 개체 및 설정을 가져오고 데이터 생성 계획을 업데이트한 후에는 해당 솔루션을 버전 제어에 추가하여 팀 멤버가 사용할 수 있게 할 수 있습니다.

관련 시나리오

  • 데이터베이스 팀 개발 시작
    데이터베이스 프로젝트에 데이터베이스 스키마의 오프라인 표현을 만들고, 이 프로젝트를 버전 제어에 추가하는 방법에 대해 설명합니다.

  • 다른 데이터베이스를 참조하는 데이터베이스의 팀 개발 시작
    데이터베이스 스키마의 오프라인 표현을 만들고, 다른 데이터베이스에 대한 참조를 하나 이상 정의하고, 대상 배포 환경에 대한 변수를 정의하고, 해당 프로젝트를 버전 제어에 추가하는 방법에 대해 설명합니다.

  • SQLCLR 개체를 참조하는 데이터베이스의 팀 개발 시작
    데이터베이스 스키마의 오프라인 표현을 만들고, SQL CLR(공용 언어 런타임) 개체가 포함된 어셈블리에 대한 참조를 정의하고, 해당 개체를 참조하는 데이터베이스 개체를 정의하고, 해당 프로젝트를 버전 제어에 추가하는 방법에 대해 설명합니다.

  • 대용량 데이터베이스의 팀 개발 시작
    데이터베이스 스키마의 오프라인 표현을 만들되, 이 표현을 여러 프로젝트에 분산하고, 스키마의 여러 부분에 대한 액세스를 제한하는 방법에 대해 설명합니다. 대형 데이터베이스에 대한 작업을 수행할 경우 이 방법을 사용하여 성능을 향상시킬 수도 있습니다.

  • 공유 서버 개체를 참조하는 데이터베이스의 팀 개발 시작
    데이터베이스 스키마의 오프라인 표현을 만들고, 공유된 서버 프로젝트에 대한 참조를 정의하고, 이 서버 프로젝트에 정의된 개체에 대한 참조를 추가하고, 해당 데이터베이스 프로젝트를 버전 제어에 추가하는 방법에 대해 설명합니다.

  • XML 스키마 컬렉션을 사용하는 데이터베이스의 팀 개발 시작
    데이터베이스 스키마의 오프라인 표현을 만들고, .xsd 파일을 참조하고, 이 참조된 스키마를 테이블의 형식화된 XML 열에 사용하는 방법에 대해 설명합니다.