다음을 통해 공유


데이터베이스 프로젝트 설정 개요

데이터베이스 프로젝트 설정을 사용하여 데이터베이스 및 빌드 구성의 여러 측면을 제어할 수 있습니다. 이러한 설정은 다음과 같은 범주로 구성되어 있습니다.

  • 프로젝트 설정

  • 빌드 이벤트

  • 참조

  • 빌드

  • 배포

프로젝트 설정, 빌드 이벤트 및 배포 속성은 데이터베이스 프로젝트에 저장되고 버전 제어를 통해 공유됩니다.

참고

사용자별 설정은 .dbproj.user 파일에 저장됩니다. 프로젝트별 설정은 .dbproj 파일에 저장됩니다.

프로젝트 설정

다음 표의 설정은 이 데이터베이스 프로젝트의 모든 구성에 적용됩니다.

필드

기본값

설명

프로젝트 버전

데이터베이스 프로젝트를 만들 때 지정한 SQL Server 버전

이 데이터베이스 프로젝트에서 대상으로 하는 SQL Server의 버전을 지정합니다.

데이터베이스 모델에 대한 데이터 정렬

영어(미국)(1033) - CI

데이터베이스의 모델을 저장하는 기본 SQL Server Compact Edition 데이터베이스에서 데이터를 정렬하고 비교하는 데 사용되는 기본 규칙을 지정합니다. 이 설정에는 대상 데이터베이스의 데이터 정렬과 가능한 한 비슷한 값을 지정해야 합니다. 대/소문자는 다르게 지정할 수 있습니다. 예를 들어 모델에는 대/소문자를 구분하지 않는 데이터 정렬을 사용하고 데이터베이스에는 대/소문자를 구분하는 데이터 정렬을 사용할 수 있습니다. 개체 정의 내에서 기본 데이터 정렬을 재정의할 수 있습니다.

참고참고
기본 데이터 정렬은 모든 플랫폼에서 동일합니다.기본값이 현재 로캘과 일치하도록 변경되지 않으므로기본 데이터 정렬을 해당 로캘에 맞는 데이터 정렬로 수동으로 설정해야 합니다.

기본 스키마

dbo

개체가 만들어지는 기본 스키마를 지정합니다. 하나 이상의 개체 정의를 변경하는 경우 이 설정을 재정의할 수 있습니다.

파일 이름에 스키마 이름 포함

dbo.Products.table.sql과 같이 파일 이름에 스키마를 접두사로 포함할지 여부를 지정합니다. 이 확인란의 선택을 취소하면 개체의 파일 이름은 ObjectName.ObjectType.sql 형식이 됩니다.

카탈로그 속성 파일

Properties\CatalogProperties.catalogproperties

대상 데이터베이스의 세부 속성 설정을 포함합니다. 모든 속성은 SQL Server 데이터베이스의 속성과 일치합니다. 자세한 내용은 Microsoft 웹 사이트의 데이터베이스 속성(옵션 탭) 항목을 참조하십시오.

빌드 이벤트 설정

이러한 설정을 사용하여 빌드 작업이 시작되기 전에 실행할 명령줄과 빌드 작업이 완료된 후에 실행할 명령줄을 지정할 수 있습니다.

필드

기본값

설명

빌드 전 이벤트 명령줄

없음

프로젝트가 빌드되기 전에 실행할 명령줄을 지정합니다. 명령줄을 수정하려면 빌드 전 편집을 클릭합니다.

빌드 후 이벤트 명령줄

없음

프로젝트가 빌드된 후에 실행할 명령줄을 지정합니다. 명령줄을 수정하려면 빌드 후 편집을 클릭합니다.

빌드 후 이벤트 실행

빌드가 성공한 경우

빌드 후 명령줄이 항상 실행되어야 하는지, 빌드 작업이 성공한 경우에만 실행되어야 하는지, 아니면 빌드 작업에서 프로젝트 출력(빌드 스크립트)을 업데이트한 경우에만 실행되어야 하는지를 지정합니다.

자세한 내용은 방법: 빌드 전 또는 빌드 후에 실행되는 사용자 지정 작업 지정빌드 전 이벤트/빌드 후 이벤트 명령줄 대화 상자(데이터베이스 프로젝트)를 참조하십시오.

참조

이 페이지를 사용하여 서버를 정의하고 크로스 데이터베이스 참조에 관련된 데이터베이스 변수를 정의할 수 있습니다. 또한 각 변수의 값을 지정할 수 있습니다. 자세한 내용은 데이터베이스 프로젝트에서 참조 사용을 참조하십시오.

빌드 설정

이러한 설정을 사용하여 빌드 스크립트 및 대상 데이터베이스에 영향을 줄 수 있습니다. 이러한 설정은 지정하는 구성과 플랫폼에만 해당되며 일반적으로 사용자마다 다릅니다.

필드

기본값

설명

빌드 출력 경로

. \sql\

데이터베이스 프로젝트를 빌드하거나 배포할 때 빌드 스크립트가 생성될 위치를 지정합니다. 상대 경로를 지정하는 경우에는 데이터베이스 프로젝트 경로에 상대적인 경로를 지정해야 합니다. 해당 경로가 없으면 생성됩니다.

빌드 출력 파일 이름

DatabaseProjectName.sql

데이터베이스 프로젝트를 빌드할 때 생성되는 스크립트에 부여할 이름을 지정합니다. 빌드 출력 파일 이름 자동 생성 확인란을 선택하면 자동으로 생성되는 파일 이름이 이 필드에서 지정하는 값을 덮어씁니다.

경고를 오류로 처리

아니요

경고 발생 시 빌드 및 배포 프로세스를 취소해야 하는지 여부를 지정합니다. 이 확인란의 선택을 취소하면 경고가 나타나더라도 빌드 및 배포 프로세스는 계속됩니다.

이 설정은 사용자가 아닌 프로젝트 관련 설정이며 .dbproj 파일에 저장됩니다.

경고 표시 안 함

비어 있음

표시하지 않을 경고를 식별하는 번호를 쉼표나 세미콜론으로 구분된 목록으로 지정합니다. 표시하지 않을 경고는 경고를 오류로 처리 확인란을 선택해도 오류 목록 창에 나타나지 않으며 빌드에도 영향을 주지 않습니다.

참고참고
한 경고 형식을 데이터베이스 프로젝트 전체에 대해 표시하려는 경우 특정 파일에 대해 해당 형식을 표시하지 않도록 지정할 수도 있습니다.자세한 내용은 방법: 하나 이상의 경고 형식을 표시하지 않도록 지정을 참조하십시오.

배포

이러한 설정을 사용하여 데이터베이스 프로젝트의 배포를 제어할 수 있습니다.

필드

기본값

설명

배포 설정 구성

내 프로젝트 설정

다른 개발자와 공유하는 프로젝트의 배포 설정을 수정할지, 아니면 격리된 개발 환경의 설정만 수정할지를 지정합니다.

배포 작업

배포 스크립트(.sql)를 만들고 데이터베이스에 배포

만들어진 .sql 스크립트를 대상 서버에 배포할지, 아니면 스크립트를 만들기만 하고 배포하지는 않을지를 지정합니다.

배포 스크립트 이름

ProjectName.sql

배포 스크립트에 사용할 이름을 지정합니다.

대상 연결

비어 있음

지정한 빌드 구성에 대해 대상으로 할 데이터베이스 서버의 연결 정보를 지정합니다.

대상 데이터베이스 이름

DatabaseProjectName

대상 연결 필드에 지정하는 연결을 통해 만들거나 업데이트할 데이터베이스의 이름을 지정합니다.

배포 구성 파일

배포 구성 파일에는 다음 표에 설명된 것과 같이 각 배포 대상과 관련된 정보가 들어 있습니다.

필드

기본값

설명

배포 비교 데이터 정렬

내 프로젝트의 데이터 정렬 사용

배포 중에 소스 및 대상 모델을 비교할 때 사용할 데이터 정렬을 지정합니다. 내 프로젝트의 데이터 정렬 사용을 클릭하면 소스 데이터 정렬이 사용됩니다. 서버의 데이터 정렬 사용을 클릭하면 대상 데이터 정렬이 사용됩니다.

데이터베이스 속성 배포

데이터베이스 프로젝트를 배포할 때 CatalogProperties.catalogproperties 설정을 배포할지 여부를 지정합니다.

항상 데이터베이스 다시 만들기

아니요

증분 배포를 수행하는 대신 데이터베이스를 삭제하고 다시 만들지 여부를 지정합니다. 예를 들어 데이터베이스 전체 배포에 대해 데이터베이스 단위 테스트를 실행하려는 경우에 이 확인란을 선택할 수 있습니다. 이 확인란의 선택을 취소하면 기존 데이터베이스가 삭제된 다음 다시 생성되지 않고 업데이트됩니다.

데이터가 손실되면 증분 배포 차단

업데이트로 인해 데이터가 손실될 경우 배포 작업을 중지할지 여부를 지정합니다. 이 확인란을 선택하면 데이터 손실을 초래하는 변경 내용이 있을 경우 오류가 발생하며 배포가 중지되므로 데이터가 손실되지 않습니다. 예를 들어 varchar(50) 열을 varchar(30)으로 변경할 경우 배포가 중지됩니다.

참고참고
데이터가 손실될 수 있는 테이블에 데이터가 들어 있는 경우에만 배포가 차단됩니다.손실될 데이터가 없는 경우에는 배포가 계속됩니다.

단일 사용자 모드에서 배포 스크립트 실행

아니요

배포하는 동안 데이터베이스를 단일 사용자 모드로 설정해야 하는지 여부를 지정합니다. 공유 데이터베이스 서버에 배포하는 경우 데이터베이스 변경 내용을 배포할 때 데이터베이스를 단일 사용자 모드로 설정해야 합니다. 이 단계를 수행하면 프로젝트를 배포하는 동안 다른 사용자가 변경 작업을 수행할 수 없습니다. 데이터베이스 프로젝트 속성의 프로젝트 설정 탭에서 전체 텍스트 검색을 사용하도록 설정한 경우에는 이 옵션을 사용할 수 없습니다.

중요중요
데이터베이스가 단일 사용자 모드인 경우 데이터베이스에 대한 변경 내용을 배포하는 즉시 데이터베이스에 대한 다른 기존 연결이 모두 끊어집니다.데이터베이스가 단일 사용자 모드로 전환되면 보류 중인 트랜잭션이 즉시 종료되도록 ROLLBACK IMMEDIATE 절이 지정되어 있습니다.

배포하기 전에 데이터베이스 백업

아니요

배포하기 전에 데이터베이스를 백업해야 하는지 여부를 지정합니다. 이 확인란의 선택을 취소하면 백업이 자동으로 수행되지 않습니다. 이 확인란을 선택하면 배포 전 스크립트에 데이터베이스 백업 문이 추가됩니다. 백업 작업에는 오랜 시간이 걸릴 수 있습니다. 데이터베이스를 빌드하여 격리된 개발 환경에 배포할 경우 빌드 및 배포 전에 데이터베이스를 백업하지 않도록 지정할 수 있습니다.

중요중요
프로덕션 서버에 배포하기 전에는 항상 데이터베이스를 백업해야 합니다.빌드 및 배포 프로세스의 일부로 데이터베이스를 자동 백업하지 않는 경우 변경 내용을 배포하기 전에 데이터베이스를 수동으로 백업해야 합니다.

데이터베이스 프로젝트에 없지만 대상 데이터베이스에 있는 개체에 대해 DROP 문 생성

아니요

데이터베이스 프로젝트에 없지만 대상 데이터베이스에 있는 개체를 배포 스크립트의 일부로 삭제해야 하는지 여부를 지정합니다. 프로젝트의 일부 파일을 제외하여 빌드 스크립트에서 일시적으로 제거할 수 있습니다. 그러나 해당 개체의 기존 버전은 대상 데이터베이스에 유지할 수 있습니다. 항상 데이터베이스 다시 만들기 확인란을 선택한 경우에는 데이터베이스가 삭제되므로 이 확인란이 아무런 영향을 주지 않습니다.

ALTER ASSEMBLY 문을 사용하여 CLR 형식 업데이트 안 함

아니요

변경 내용을 배포할 때 ALTER ASSEMBLY 문을 사용하여 CLR(공용 언어 런타임) 형식을 업데이트할지, 아니면 CLR 형식을 인스턴스화하는 개체를 삭제한 다음 다시 만들지를 지정합니다.

다음 표에서는 고급 배포 설정에 대해 설명합니다.

필드

기본값

설명

AbortOnFirstError

True

첫 번째 오류가 발생할 때 배포를 취소할지 여부를 지정합니다.

BuildtimeContributorsMustExist

True

프로젝트를 배포할 때 배포 참가자(데이터베이스 프로젝트를 빌드할 때 등록됨)를 등록해야 하는지 여부를 지정합니다.

CheckNewConstraints

True

제약 조건을 만들거나 다시 만들 때 기본적으로 NOCHECK 옵션이 설정된 상태로 제약 조건을 만들지 여부를 지정합니다. 배포 스크립트의 끝 부분에 모든 제약 조건을 하나의 집합으로 검사하는 문 블록이 추가됩니다. 이 속성을 True로 설정하면 배포 스크립트가 종료될 때까지 데이터 검사를 지연시켜 배포 프로세스 도중에 CHECK 제약 조건이나 외래 키 제약 조건으로 인해 데이터 오류가 발생하는 문제 없이 스키마를 배포할 수 있습니다.

CommentOutSetVarDeclarations

False

생성된 배포 스크립트에서 SetVar 변수의 선언을 주석 처리할지 여부를 지정합니다. SQLCMD.EXE와 같은 도구를 사용하여 배포할 때 명령줄에서 값을 지정하려는 경우 SetVar 변수의 선언을 주석 처리할 수 있습니다.

DisableAndReenableDdlTriggers

True

배포 프로세스가 시작될 때 DDL(데이터 정의 언어) 트리거를 사용하지 않도록 설정했다가 배포 프로세스가 종료될 때 다시 사용하도록 설정할지 여부를 지정합니다.

DropConstraintsNotInSource

True

업데이트를 데이터베이스에 배포할 때 데이터베이스 프로젝트에 없는 제약 조건을 대상 데이터베이스에서 삭제할지 여부를 지정합니다.

DropIndexesNotInSource

True

업데이트를 데이터베이스에 배포할 때 데이터베이스 프로젝트에 없는 인덱스를 대상 데이터베이스에서 삭제할지 여부를 지정합니다.

EnforceMinimalDependencies

False

프로시저, 스칼라 함수 및 테이블 반환 함수의 본문을 구문 분석하고 해석할지 여부를 지정합니다. 이 설정을 사용하도록 설정하면 본문 내의 종속성은 식별되지 않지만 개체 정의에 대한 변경 내용은 식별됩니다. 이 옵션을 True로 설정하면 성능이 향상되지만 누락된 종속성으로 인해 배포 시 문제가 발생할 수 있습니다.

GenerateDeployStateChecks

True

데이터베이스 이름 및 서버 이름이 데이터베이스 프로젝트에 지정된 이름과 일치하는지 확인하는 문을 배포 스크립트에 생성할지 여부를 지정합니다.

IgnoreAnsiNulls

False

데이터베이스에 업데이트를 배포할 때 ANSI Nulls 설정의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreAuthorizer

False

데이터베이스에 업데이트를 배포할 때 Authorizer의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreColumnCollation

False

데이터베이스에 업데이트를 배포할 때 열 데이터 정렬의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreComments

False

데이터베이스에 업데이트를 배포할 때 주석의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreCryptographicProviderFilePath

False

데이터베이스에 업데이트를 배포할 때 암호화 공급자에 대한 파일 경로의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreDdlTriggerOrder

False

데이터베이스 또는 서버에 업데이트를 배포할 때 DDL(데이터 정의 언어) 트리거의 순서 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreDdlTriggerState

False

데이터베이스에 업데이트를 배포할 때 DDL(데이터 정의 언어) 트리거의 활성화 또는 비활성화 상태 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreDefaultSchema

False

데이터베이스에 업데이트를 배포할 때 사용자에 대한 기본 스키마 설정(다른 경우)을 업데이트할지를 지정합니다.

IgnoreDmlTriggerOrder

False

데이터베이스에 업데이트를 배포할 때 DML(데이터 조작 언어) 트리거의 순서 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreDmlTriggerState

False

데이터베이스에 업데이트를 배포할 때 DML 트리거의 활성화 또는 비활성화 상태 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreExtendedProperties

False

데이터베이스에 업데이트를 배포할 때 확장 속성의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreFilegroupPlacement

True

데이터베이스에 업데이트를 배포할 때 파일 그룹에 있는 개체의 위치 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreFillFactor

True

데이터베이스에 업데이트를 배포할 때 인덱스 저장소에 대한 채우기 비율의 차이를 무시할지 여부나 경고를 발생시킬지 여부를 지정합니다.

IgnoreIdentitySeed

False

데이터베이스에 업데이트를 배포할 때 ID 열에 대한 시드의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreIncrement

False

데이터베이스에 업데이트를 배포할 때 ID 열에 대한 증가의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreIndexOptions

False

데이터베이스에 업데이트를 배포할 때 인덱스 옵션의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreIndexPadding

True

데이터베이스에 업데이트를 배포할 때 인덱스 패딩의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreKeywordCasing

True

데이터베이스에 업데이트를 배포할 때 키워드의 대/소문자 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreLockHintsOnIndexes

False

데이터베이스에 업데이트를 배포할 때 인덱스에 대한 잠금 힌트의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreLoginSids

False

데이터베이스에 업데이트를 배포할 때 SID(보안 식별자) 번호의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreNotForReplication

False

데이터베이스에 업데이트를 배포할 때 NOT FOR REPLICATION 설정의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreObjectPlacementOnPartitionScheme

True

데이터베이스에 업데이트를 배포할 때 파일 그룹에 대한 분할된 테이블 또는 인덱스의 파티션 매핑 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnorePartitionSchemes

False

데이터베이스에 업데이트를 배포할 때 파티션 스키마 및 함수의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnorePermissions

False

데이터베이스에 업데이트를 배포할 때 사용 권한의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreQuotedIdentifiers

False

데이터베이스에 변경 내용을 배포할 때 따옴표 붙은 식별자 설정의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreRoleMembership

False

데이터베이스에 업데이트를 배포할 때 로그인의 역할 멤버 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreRouteLifetime

True

데이터베이스에 업데이트를 배포할 때 SQL Server에서 라우팅 테이블의 경로가 유지되는 시간의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreSemicolonBetweenStatements

True

데이터베이스에 업데이트를 배포할 때 Transact-SQL 문 간의 세미콜론 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreStatisticsSample

True

데이터베이스에 업데이트를 배포할 때 CREATE STATISTICS에 사용되는 샘플의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreTableOptions

False

데이터베이스에 업데이트를 배포할 때 테이블 옵션의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreUserSettingsObjects

False

데이터베이스에 업데이트를 배포할 때 사용자 설정 개체의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreWhitespace

True

데이터베이스에 업데이트를 배포할 때 공백의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreWithNocheckOnCheckContraints

False

데이터베이스에 업데이트를 배포할 때 CHECK 제약 조건에 대한 WITH NOCHECK 절의 값 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IgnoreWithNocheckOnForeignKeys

False

데이터베이스에 업데이트를 배포할 때 외래 키에 대한 WITH NOCHECK 절의 값 차이를 무시할지 아니면 업데이트할지를 지정합니다.

IncludeTransactionalScripts

False

데이터베이스에 배포할 때 가능하면 트랜잭션 문을 사용할지 여부를 지정합니다.

ScriptDatabaseCollation

True

데이터베이스에 업데이트를 배포할 때 데이터베이스 데이터 정렬의 차이를 무시할지 아니면 업데이트할지를 지정합니다.

TreatVerificationErrorsAsWarnings

False

배포 확인 중 발생한 오류를 경고로 처리할지 여부를 지정합니다. 생성된 배포 계획이 대상 데이터베이스에 대해 실행되기 전에 해당 계획에 대한 검사가 수행됩니다. 계획 확인 과정에서는 인덱스와 같이 변경 작업을 수행하기 위해 반드시 삭제해야 하는 대상 전용 개체가 손실되는 등의 문제를 확인합니다. 또한 복합 프로젝트에 대한 참조로 인해 테이블 또는 뷰 등의 종속성이 있지만 대상 데이터베이스에는 이러한 종속성이 없는 경우도 확인합니다. 이 작업을 선택하여 첫 번째 오류가 발생할 때 배포를 중지하는 대신 모든 배포 문제의 전체 목록을 가져올 수 있습니다.

UnmodifiableObjectWarnings

True

예를 들어 파일 크기 또는 파일 경로가 다른 경우와 같이 개체에 수정할 수 없는 차이가 있을 때 경고를 생성할지 여부를 지정합니다.

VerifyDeployment

True

배포를 차단할 수 있는 문제가 있는 경우 배포를 중지하는 배포 전 검사를 수행할지 여부를 지정합니다. 예를 들어 데이터베이스 프로젝트에는 없고 배포 시 오류를 발생시키는 외래 키가 대상 데이터베이스에 있는 경우 배포를 중지할 수 있습니다.

참고 항목

작업

방법: 데이터베이스 및 서버 프로젝트의 빌드 설정 구성

방법: 데이터베이스 및 서버 프로젝트의 배포 설정 구성

방법: 데이터베이스 프로젝트를 빌드하여 컴파일된 스키마 파일(.dbschema) 생성

방법: 새 데이터베이스 또는 기존 데이터베이스로 변경 내용 배포

연습: 새 버전 제어 데이터베이스 만들기 및 배포

연습: 기존 버전 제어 데이터베이스로 변경 내용 배포

방법: 하나 이상의 경고 형식을 표시하지 않도록 지정

방법: 데이터베이스 프로젝트의 변수 정의

개념

데이터베이스 빌드 및 배포 개요