SQL 프로젝트 속성
적용 대상: SQL ServerAzure SQL Database
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric의 SQL 데이터베이스
SQL Database 프로젝트에는 개별 .sql
파일의 내용 외에도 프로젝트의 동작 및 데이터베이스 수준 설정을 정의하는 속성이 포함되어 있습니다. 이러한 속성은 .sqlproj
파일에 저장되며 .sqlproj
파일을 직접 편집하여 설정할 수 있습니다. Visual Studio 및 VS Code와 같은 일부 SQL 프로젝트 도구는 그래픽 사용자 인터페이스에서 일부 또는 많은 프로젝트 속성을 편집할 수 있는 액세스를 제공합니다. 이 문서에서는 SQL 데이터베이스 프로젝트에 대해 설정할 수 있는 속성의 개요를 제공합니다.
일반적으로 사용되는 SQL 프로젝트 속성은 다음과 같습니다.
- 대상 플랫폼(DSP)
- 코드 분석
- DacApplicationName 및 DacVersion
- 기본 스키마
- TreatTSqlWarningsAsErrors(마치 에러처럼 T-SQL 경고 처리)
데이터베이스 옵션 변경 사용 안 함
SQL 프로젝트를 게시하는 동안 데이터베이스 옵션에 대한 변경 내용은 프로젝트 속성 및 기본 프로젝트 값에 정의된 값을 기반으로 스크립티됩니다. 게시하는 동안 데이터베이스 옵션이 수정되지 않도록 하려면 SqlPackage CLI 또는 Visual Studio와 같은 도구를 사용하여 게시 속성을 ScriptDatabaseOptions
false로 설정합니다. 이 설정은 게시 프로필에도 통합할 수 있습니다.
일반적인 프로젝트 속성
대상 플랫폼 속성은 프로젝트가 대상으로 하는 SQL Server 버전을 지정합니다.
DSP
속성은 SQL 프로젝트의 대상 플랫폼을 설정하는 데 사용됩니다. 대상 플랫폼에 대한 자세한 내용은 대상 플랫폼 문서에서 찾을 수 있습니다.
코드 분석은 개발 수명 주기 초기에 잠재적인 문제를 파악하여 연속 통합 및 배포 프로세스를 크게 향상시킬 수 있습니다. 코드 분석을 사용하도록 설정하고 SQL 코드 분석 문서에 사용자 지정 규칙을 포함하는 방법에 대해 자세히 알아봅니다.
데이터 계층 애플리케이션 속성
다음 속성은 SQL 프로젝트를 빌드할 때 생성되는 DAC(데이터 계층 애플리케이션)를 정의하는 데 사용됩니다.
-
DacApplicationName: 데이터 계층 애플리케이션의 이름이
.dacpac
. 기본값은 프로젝트 이름입니다. -
DacDescription: 데이터 계층 애플리케이션
.dacpac
대한 선택적 설명입니다. -
DacVersion: 데이터 계층 애플리케이션의 버전이
.dacpac
. 기본값은1.0.0.0
.
기본 스키마
DefaultSchema
속성은 SQL 프로젝트의 기본 스키마를 설정합니다. 이 속성은 1부로 구성된 명명된 개체에 적용됩니다. 기본값은 dbo
.
T-SQL 경고
SuppressTSqlWarnings
및 TreatTSqlWarningsAsErrors
속성은 프로젝트 빌드 중에 T-SQL 경고를 처리하는 방법을 제어합니다.
SuppressTSqlWarnings
속성은 쉼표로 구분된 오류 번호 목록으로 지정된 프로젝트 빌드 중에 T-SQL 경고를 표시하지 않습니다.
TreatTSqlWarningsAsErrors
속성은 T-SQL 경고를 오류로 처리하여 T-SQL 경고가 빌드에 실패하도록 합니다.
TreatTSqlWarningsAsErrors
기본값은 False
.
프로젝트 속성의 예제 사용
다음 예제에서는 SQL 프로젝트 파일에서 CompatibilityMode
, IsChangeTrackingOn
및 TreatTSqlWarningsAsErrors
속성을 설정하는 방법을 보여 있습니다.
CompatibilityMode
속성은 130
설정되고 IsChangeTrackingOn
속성은 True
설정되며 TreatTSqlWarningsAsErrors
속성은 True
.
TreatSqlWarningsAsErrors
속성은 Release
빌드 구성에서만 True
으로 설정됩니다.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
<Sdk Name="Microsoft.Build.Sql" Version="1.0.0-rc1" />
<PropertyGroup>
<Name>AdventureWorks</Name>
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
<ModelCollation>1033, CI</ModelCollation>
<ProjectGuid>{00000000-0000-0000-0000-000000000000}</ProjectGuid>
<RunSqlCodeAnalysis>true</RunSqlCodeAnalysis>
<CompatibilityMode>130</CompatibilityMode>
<IsChangeTrackingOn>True</IsChangeTrackingOn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<TreatTSqlWarningsAsErrors>True</TreatTSqlWarningsAsErrors>
</PropertyGroup>
</Project>
모든 프로젝트 속성
일부 프로젝트 속성은 SQL Server 데이터베이스 또는 특정 버전의 SQL Server에만 적용되는 데이터베이스 옵션과 연결됩니다. 프로젝트에 프로젝트 속성을 포함하기 전에 데이터베이스 옵션에 대한 관련 설명서를 검토하여 속성 및 데이터베이스 요구 사항의 동작을 이해합니다.
재산 |
DATABASE SET 옵션 |
UI 레이블 | SQL 프로젝트 기본값 | 허용되는 값 |
---|---|---|---|---|
스냅샷 격리 허용 | ALLOW_SNAPSHOT_ISOLATION |
데이터베이스 설정, 운영, 스냅샷 격리 허용 | 거짓 | {참|거짓} |
AnsiNulls | ANSI_NULLS |
데이터베이스 설정, SET ANSI_NULLS | 진실 | {참|거짓} |
AnsiPadding | ANSI_PADDING |
데이터베이스 설정, SET ANSI_PADDING | 진실 | {참|거짓} |
AnsiWarnings | ANSI_WARNINGS |
데이터베이스 설정, SET ANSI_WARNINGS | 진실 | {참|거짓} |
ArithAbort | ARITHABORT |
데이터베이스 설정, SET ARITHABORT | 진실 | {참|거짓} |
자동 닫힘 | AUTO_CLOSE |
데이터베이스 설정, 운영, 자동 닫기 | 거짓 | {참|거짓} |
자동 통계 생성 | AUTO_CREATE_STATISTICS |
데이터베이스 설정, 운영, 통계 자동 만들기 | 진실 | {참|거짓} |
자동 축소 | AUTO_SHRINK |
데이터베이스 설정, 운영, 자동 축소 | 거짓 | {참|거짓} |
자동 업데이트 통계 | AUTO_UPDATE_STATISTICS |
데이터베이스 설정, 운영, 자동 업데이트 통계 | 진실 | {참|거짓} |
통계를 비동기적으로 자동 업데이트 | AUTO_UPDATE_STATISTICS_ASYNC |
데이터베이스 설정, 운영, 통계 자동 업데이트 비동기 | 거짓 | {참|거짓} |
변경 추적 유지 기간 | CHANGE_RETENTION |
데이터베이스 설정, 운영, 변경 내용 추적 보존 기간 | 2 | {integer} |
변경 추적 보유 단위 | CHANGE_RETENTION |
데이터베이스 설정, 운영, 변경 내용 추적 보존 기간 | 분 | {일|시간|분} |
커밋 시 커서 닫기 활성화 | CURSOR_CLOSE_ON_COMMIT |
데이터베이스 설정, 작동, 커밋을 사용할 때 커서 닫기 | 거짓 | {참|거짓} |
호환성 모드 | COMPATIBILITY_LEVEL |
데이터베이스 설정, 호환성 수준 | {100|110|120|130|140|150|160|170}1 | |
ConcatNullYieldsNull | CONCAT_NULL_YIELDS_NULL |
데이터베이스 설정, SET CONCAT_NULL_YIELDS_NULL | 참 | {참|거짓} |
억제 | CONTAINMENT |
데이터베이스 설정, 포함 | 없음 | {NONE|PARTIAL} |
DacApplicationName | 데이터 계층 애플리케이션(.dacpac ) 속성, 이름 |
프로젝트 이름 | {string} | |
DacDescription | 데이터 계층 애플리케이션(.dacpac ) 속성, 설명 |
{string} | ||
DacVersion | 데이터 계층 애플리케이션(.dacpac ) 속성, 버전 |
1.0.0.0 | {의미 체계 버전 번호} | |
DatabaseAccess | db_user_access_option |
데이터베이스 설정, 데이터베이스 액세스 | 다중 사용자 | {다중 사용자|단일 사용자|제한된 사용자} |
데이터베이스 체이닝 | DB_CHAINING |
데이터베이스 설정, 데이터베이스 연결 | 거짓 | {참|거짓} |
데이터베이스 기본 전체 텍스트 언어 | DEFAULT_FULLTEXT_LANGUAGE |
데이터베이스 설정, 기본 전체 텍스트 언어 | 1033 | {정수 언어 ID} |
데이터베이스 기본 언어 | DEFAULT_LANGUAGE |
데이터베이스 설정, 기본 언어 | 1033 | {정수 언어 ID} |
DatabaseState | db_state_option |
데이터베이스 설정, 데이터베이스 상태 | 온라인 | {온라인|오프라인} |
DbScopedConfigLegacyCardinalityEstimation |
LEGACY_CARDINALITY_ESTIMATION
2 |
데이터베이스 범위 구성, 레거시 카디널리티 예측 | 끄기 | {꺼짐|켜짐} |
DbScopedConfigLegacyCardinalitySecondaryEstimation (디비 범위 지정 설정-레거시 카디널리티-보조 추정치) |
LEGACY_CARDINALITY_SECONDARY_ESTIMATION
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 레거시 카디널리티 예측 | 본래의 | {기본|꺼짐|켜짐} |
DbScopedConfigParameterSniffing |
PARAMETER_SNIFFING
2 |
데이터베이스 범위 구성, 매개 변수 검색 | 에 | {켜짐|꺼짐} |
DbScopedConfigParameterSniffingSecondary |
PARAMETER_SNIFFING_SECONDARY
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 매개 변수 검색 | 본래의 | {기본|끄기|켜기} |
DbScopedConfigOptimizerHotfixes (DB 스코프 구성 최적화 핫픽스) |
OPTIMIZER_HOTFIXES
2 |
데이터베이스 범위 구성, 쿼리 최적화 패치 | 끄기 | {Off|On} |
DbScopedConfigOptimizerHotfixesSecondary |
OPTIMIZER_HOTFIXES_SECONDARY
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 쿼리 최적화 도구 핫픽스 | 본래의 | {기본|끄기|켜기} |
DbScopedConfigMaxDOP |
MAXDOP
2 |
데이터베이스 범위 구성, 최대 병렬 처리 수준 | 0 | {integer} |
DbScopedConfigMaxDOPSecondary (데이터베이스 스코프 구성 최대 DOP 보조) |
MAXDOP_SECONDARY
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 최대 병렬 처리 수준 | {integer} | |
DbScopedConfigDWCompatibilityLevel |
DW_COMPATIBILITY_LEVEL
2 |
데이터베이스 범위 구성, DW 호환성 수준 | 0 | {0|10|20|30|40|50|9000}3 |
기본정렬 |
COLLATE
4 |
데이터베이스 설정, 데이터베이스 데이터 정렬 | SQL_Latin1_General_CP1_CI_AS | 유효한 값은 SQL Server 데이터 정렬 이름 참조하세요. |
기본 커서 | CURSOR_DEFAULT |
데이터베이스 설정, 작동, 기본 커서 | 현지 | {Global|Local} |
기본 파일그룹 | 데이터베이스 설정, 운영, 기본 파일 그룹 | 본래의 | {string} | |
DefaultFileStreamFilegroup | 데이터베이스 설정, 운영, 기본 파일 스트림 파일 그룹 | {string} | ||
기본 스키마 | 일반 프로젝트 설정, 기본 스키마 | dbo | {string} | |
지연 내구성 | DELAYED_DURABILITY |
데이터베이스 설정, 운영, 트랜잭션 지연 내구성 | 비활성화 | {비활성화됨|허용됨|강제됨} |
DSP | SQL 프로젝트의 대상 플랫폼 | 유효한 값은 대상 플랫폼 참조하세요. | ||
전체 텍스트 검색 활성화 | 데이터베이스 설정, 전체 텍스트 검색 사용 | 참 | {참|거짓} | |
파일스트림디렉토리이름 |
FILESTREAM (DIRECTORY_NAME ) |
데이터베이스 설정, FILESTREAM 디렉터리 이름 | {string} | |
브로커 우선 순위가 존중되는가 | HONOR_BROKER_PRIORITY |
데이터베이스 설정, 중개자 우선순위가 적용됨 | 거짓 | {참|거짓} |
변경 추적 자동 정리 기능 활성화 여부 | CHANGE_TRACKING |
데이터베이스 설정, 운영, 변경 내용 추적 자동 정리 | 맞아 | {참|거짓} |
IsChangeTrackingOn | CHANGE_TRACKING |
데이터베이스 설정, 운영, 변경 내용 추적 | 거짓 | {참|거짓} |
암호화가 켜져 있습니까 | ENCRYPTION |
데이터베이스 설정, 암호화 사용 | 거짓 | {참|거짓} |
IsLedgerOn |
LEDGER
4 |
데이터베이스 설정, 원장 활성화 | 거짓 | {참|거짓} |
중첩 트리거가 켜져 있는가 | NESTED_TRIGGERS |
데이터베이스 설정, 중첩 트리거 사용 | 진실 | {참|거짓} |
IsTransformNoiseWordsOn (노이즈 단어 변환 기능 활성화 여부) | TRANSFORM_NOISE_WORDS |
데이터베이스 설정, 노이즈 단어 처리 | 거짓 | {참|거짓} |
메모리최적화스냅샷으로승격 | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT |
데이터베이스 설정, 운영, 메모리 최적화 스냅샷으로 전환 | 거짓 | {참|거짓} |
ModelCollation | 프로젝트 설정, 데이터 정렬 | 1033,CI | {정수 언어 ID}, {CI|CS} | |
NonTransactedFileStreamAccess | NON_TRANSACTED_ACCESS |
데이터베이스 설정, FILESTREAM 트랜잭션되지 않은 액세스 | OFF | {꺼짐|읽기 전용|전체} |
NumericRoundAbort | NUMERIC_ROUNDABORT |
데이터베이스 설정, SET NUMERIC_ROUNDABORT | 거짓 | {참|거짓} |
출력 경로 | 빌드 설정, 출력 경로 |
bin\Debug 및 bin\Release |
{string} | |
PageVerify | PAGE_VERIFY |
데이터베이스 설정, 운영, 페이지 확인 | 없음 | {NONE|TORN_PAGE_DETECTION|CHECKSUM} |
매개 변수화 | PARAMETERIZATION |
데이터베이스 설정, 매개 변수화 | 간단한 | {단순|강제} |
QueryStoreCaptureMode |
QUERY_STORE (QUERY_CAPTURE_MODE ) |
데이터베이스 설정, 운영, 쿼리 저장소 캡처 모드 | 모두 | {끔|전체|자동} |
쿼리스토어원하는상태 |
QUERY_STORE (OPERATION_MODE ) |
데이터베이스 설정, 운영, 쿼리 저장소 작업 모드 | OFF | {꺼짐|읽기_쓰기|읽기_전용} |
QueryStoreFlushInterval (쿼리스토어플러시간격) |
QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS ) |
데이터베이스 설정, 운영, 쿼리 저장소 데이터 플러시 간격(초) | 900 | {integer} |
QueryStoreIntervalLength |
QUERY_STORE (INTERVAL_LENGTH_MINUTES ) |
데이터베이스 설정, 운영, 쿼리 저장소 간격 길이(분) | 60 | {integer} |
QueryStoreMaxPlansPerQuery |
QUERY_STORE (MAX_PLANS_PER_QUERY ) |
데이터베이스 설정, 운영, 쿼리당 쿼리 저장소 최대 계획 수 | 200 | {integer} |
쿼리스토어최대저장소크기 |
QUERY_STORE (MAX_STORAGE_SIZE_MB ) |
데이터베이스 설정, 운영, 쿼리 저장소 최대 스토리지 크기(MB) | 100 | {integer} |
쿼리 저장소 오래된 쿼리 임계값 (QueryStoreStaleQueryThreshold) |
QUERY_STORE (STALE_QUERY_THRESHOLD_DAYS ) |
데이터베이스 설정, 운영, 쿼리 저장소 부실 쿼리 임계값(일) | 367 | {integer} |
인용된 식별자 | QUOTED_IDENTIFIER |
데이터베이스 설정, SET QUOTED_IDENTIFIER | 진실 | {참|거짓} |
즉시 커밋된 스냅샷 | READ_COMMITTED_SNAPSHOT |
데이터베이스 설정, 운영, 커밋된 읽기 스냅샷 | 거짓 | {참|거짓} |
복구 | RECOVERY |
데이터베이스 설정, 운영, 복구 | 가득 찬 | {전체|간단|대량_로그} |
재귀 트리거 활성화됨 | RECURSIVE_TRIGGERS |
데이터베이스 설정, 재귀 트리거 사용 | 거짓 | {참|거짓} |
ServiceBrokerOption | SERVICE_BROKER |
데이터베이스 설정, 서비스 브로커 옵션 | 브로커 비활성화 | {브로커비활성화|브로커활성화|새브로커|브로커대화오류} |
SuppressTSqlWarnings | 빌드 설정, T-SQL 경고 표시 안 함(쉼표로 구분된 T-SQL 경고 코드 목록) | {string} | ||
목표복구시간기간 | 데이터베이스 설정, 운영, 대상 복구 시간(초) | 데이터베이스별로 간접 검사점의 빈도를 지정합니다. | 60 | {integer} |
목표 복구 시간 단위 | 데이터베이스 설정, 운영, 대상 레코더 시간 | 초 | {분|초} | |
TreatTSqlWarningsAsErrors | 빌드 설정, T-SQL 경고를 오류로 처리 | 거짓 | {참|거짓} | |
신뢰할 수 있는 | TRUSTWORTHY |
데이터베이스 설정, 신뢰할 수 있는 | 거짓 | {참|거짓} |
TwoDigitYearCutoff (2자리 연도 절단) | TWO_DIGIT_YEAR_CUTOFF |
데이터베이스 설정, 두 자리 연도 구분 | 2049 | {integer} |
업데이트 옵션 | db_update_option |
데이터베이스 설정, 업데이트 옵션 | 읽기_쓰기 | {읽기_쓰기|읽기_전용} |
식별자 대문자/소문자 검증 | 일반 프로젝트 설정 및 식별자 대문자/소문자 유효성 검사 | 진실 | {참|거짓} |
- 기본값은 엔진 버전 및 서버 설정에 따라 다릅니다.
- 데이터베이스 범위 구성 옵션입니다.
- AUTO는 0 값으로 설정됩니다.
-
CREATE DATABASE
옵션로만 적용됩니다.