다음을 통해 공유


스키마 비교 문제 해결

업데이트: 2007년 11월

두 데이터베이스 스키마를 비교하는 경우 이 항목에 설명된 문제가 발생할 수 있습니다.

종속성 및 업데이트 스크립트

업데이트 스크립트에서 개체를 올바른 순서대로 생성하기 위해 스키마 비교는 개체 종속성을 검사합니다. 예를 들어 뷰가 테이블에 종속된 경우 뷰보다 먼저 테이블을 만들어야 합니다. 두 번째 개체에 종속된 개체에서 스키마 한정 이름을 사용하지 않는 경우 종속성이 확인되지 않거나 업데이트 또는 생성 스크립트의 문 순서가 잘못될 수도 있습니다. 이러한 차이로 인해 소스와 일치하도록 대상을 업데이트하거나 변경 내용을 데이터베이스로 배포할 때 오류가 발생할 수 있습니다. 이 문제는 데이터베이스 빌드 스크립트에도 적용됩니다.

참고:

이 문제를 해결하려면 종속 관계에 있는 개체 이름에서 스키마를 한정해야 합니다. 다음 예제에서 단순히 KeysTable 대신 [dbo].[KeysTable]을 참조하도록 문의 끝 부분을 변경하면 종속성이 제대로 확인됩니다.

CREATE VIEW [NewUser].[ViewReferencingScalarFunction] AS SELECT Column2, dbo.SimpleMultiplyParamByTwo(PK_Column) AS [Function] FROM KeysTable

대칭 키, 비대칭 키 및 인증서

Visual Studio Team System Database Edition에서는 대칭 키, 비대칭 키 또는 인증서를 데이터베이스 개체로 만들 수 없습니다. 데이터베이스 스키마를 가져오면 키 및 인증서 이름이 있는 배포 전 스크립트에 자리 표시자 주석이 포함됩니다. 이러한 개체를 만들려면 배포 전 스크립트를 편집해야 합니다. 이와 마찬가지로 데이터베이스 스키마를 비교하는 경우 누락된 대칭 키, 비대칭 키 또는 인증서를 만드는 데 필요한 T-SQL(Transact-SQL) 명령은 스키마 업데이트 스크립트에 포함되지 않습니다. 업데이트 스크립트를 편집기로 내보내고 이러한 개체를 만드는 문을 추가해야 합니다. T-SQL(Transact-SQL) 문에 대한 자세한 내용은 Transact-SQL 참조(Transact-SQL)를 참조하십시오.

테이블 및 인덱스 옵션

스키마 비교에서는 sp_tableoption 또는 sp_indexoption을 사용하여 설정한 옵션을 비교 또는 스크립팅하지 않습니다. 이 문제를 해결할 수 있는 방법은 없습니다.

대규모 데이터베이스 비교 시 시간 초과

대규모 데이터베이스의 스키비를 비교할 때 시간 초과 오류가 발생하는 경우 시간 제한 값을 늘려야 합니다. 이 옵션은 사용자 인터페이스를 통해 노출되지 않습니다. HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\DBPro\Database 아래의 레지스트리에 초 단위로 저장되어 있는 QueryTimeoutSeconds 값을 수정해야 합니다. 시간 제한은 기본적으로 60초입니다.

파일 및 파일 그룹 비교

대상 데이터베이스의 파일 그룹이 읽기 전용이면 해당 속성은 데이터베이스와 데이터베이스 프로젝트 간의 스키마를 비교할 때 항상 차이점으로 나타납니다. 또한 기본 파일 그룹은 스키마를 비교할 때는 무시됩니다.

참고 항목

작업

방법: 데이터베이스 개체 수정

방법: 데이터 차이 보기

개념

Database Edition의 용어 개요