배포 및 스키마 업데이트 중의 데이터 유지에 대한 고려 사항
업데이트: 2007년 11월
두 개의 스키마를 동기화하기 전에는 변경 내용으로 인해 중요한 데이터가 손실될 가능성을 최소화하도록 데이터베이스 프로젝트의 설정을 구성해야 합니다. 이러한 설정을 구성하면 동기화에 대상 데이터베이스에서 데이터를 제거할 가능성이 높은 변경 내용이 들어 있는 경우 동기화를 차단할 수 있습니다. 자세한 내용은 방법: 기존 데이터베이스에 배포하는 동안 데이터 손실 제어 및 방법: 데이터베이스 스키마 비교 옵션 설정을 참조하십시오.
그러나 이 설정을 사용하면 예상치 못한 결과가 발생할 수 있습니다. 중요한 데이터가 손실되지 않는데도 변경 내용이 배포되지 않을 수 있으며 대상이 업데이트되면 SQL Server로 인해 데이터가 손실될 수 있는데도 변경 내용이 배포될 수 있습니다.
불필요하게 차단된 배포
데이터 손실을 방지하는 데 도움을 주도록 프로젝트 설정을 구성하는 경우 중요한 데이터가 손실되지는 않지만 두 스키마를 동기화하지 못할 수도 있습니다. 예를 들어 데이터베이스 프로젝트의 데이터 열을 삭제하고 이러한 변경 내용을 대상 데이터베이스에 배포하려는 경우가 있을 수 있습니다. 이 경우 열을 의도적으로 삭제했지만 대상 데이터베이스에서 데이터가 손실되지 않도록 하기 위해 배포가 차단됩니다.
또 다른 예로, 소스의 데이터 형식이 대상의 해당되는 데이터 형식과 호환되는 것으로 확인할 수 없는 경우에도 배포가 차단됩니다. 이러한 상황은 소스 또는 대상에 사용자 정의 데이터 형식이나 CLR(공용 언어 런타임) 형식이 들어 있는 경우에 발생할 수 있습니다. 예를 들어 소스의 데이터 형식이 char(100)로 정의되어 있고 대상의 데이터 형식이 CREATE TYPE [schema].[UserDefinedDataType] FROM char(100) NOT NULL 같은 사용자 정의 데이터 형식으로 정의되어 있으면 배포가 차단됩니다.
필요한 경우 배포 또는 업데이트 스크립트를 검사하고 변경 내용으로 인해 중요한 데이터가 손실되지 않음을 확인한 후에 동기화를 허용하도록 프로젝트 설정을 임시로 구성할 수도 있습니다.
차단되지 않은 배포 시 데이터 손실
데이터 손실을 방지하는 데 도움을 주도록 데이터베이스 프로젝트를 구성하더라도 경우에 따라 SQL Server로 인해 동기화 실행 도중 데이터가 손실될 수 있습니다. 따라서 두 스키마를 동기화하기 전에 다음 항목이 포함될 수 있는 경우 배포 또는 업데이트 스크립트를 검사해야 합니다.
테이블의 열 순서 변경
기존 데이터 형식과 호환되지 않고 SQL 기본 데이터 형식을 사용하는 형식에 대한 열 데이터 형식 변경. 이러한 상황은 데이터 형식 변경 내용으로 인해 int에서 bit로 또는 nvarchar(100)에서 char(10)로 데이터가 잘리는 경우 등에 발생할 수 있습니다.
열 ID 등의 열 속성 변경
ID 시드 같은 테이블의 ID 열 속성 변경
NULL 값이 허용되지 않고 관련된 기본값이 없는 열의 변경(예: null 값을 허용하도록 열 변경)
변경하는 열에 바인딩된 추가 열이 테이블에 포함되어 있을 경우 NULL 값을 허용하지 않는 열의 변경
테이블 열 순서 동일하게 유지 확인란을 선택한 열 추가. 자세한 내용은 옵션(데이터베이스 도구/스키마 비교)을 참조하십시오.
테이블의 파일 그룹 변경
배포 또는 업데이트 스크립트에 이러한 형식의 변경 내용이 들어 있으면 이를 수동으로 수정하여 데이터를 유지할 수 있습니다.
참고 항목
작업
방법: 기존 데이터베이스에 배포하는 동안 데이터 손실 제어
방법: 새 데이터베이스 또는 기존 데이터베이스로 변경 내용 배포