적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 미리 보기의 SQL 데이터베이스
SQL Database 프로젝트에는 개별 .sql
파일의 내용 외에도 프로젝트의 동작 및 데이터베이스 수준 설정을 정의하는 속성이 포함되어 있습니다. 이러한 속성은 .sqlproj
파일에 저장되며 .sqlproj
파일을 직접 편집하여 설정할 수 있습니다. Visual Studio 및 VS Code와 같은 일부 SQL 프로젝트 도구는 그래픽 사용자 인터페이스에서 일부 또는 많은 프로젝트 속성을 편집할 수 있는 액세스를 제공합니다. 이 문서에서는 SQL 데이터베이스 프로젝트에 대해 설정할 수 있는 속성의 개요를 제공합니다.
일반적으로 사용되는 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
.
Default schema
DefaultSchema
속성은 SQL 프로젝트의 기본 스키마를 설정합니다. 이 속성은 1부로 구성된 명명된 개체에 적용됩니다. 기본값은 dbo
.
T-SQL warnings
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
속성은 True
빌드 구성에서만 Release
으로 설정됩니다.
<?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에만 적용되는 데이터베이스 옵션과 연결됩니다. 프로젝트에 프로젝트 속성을 포함하기 전에 데이터베이스 옵션에 대한 관련 설명서를 검토하여 속성 및 데이터베이스 요구 사항의 동작을 이해합니다.
Property |
DATABASE SET 옵션 |
UI label | SQL 프로젝트 기본값 | Allowed values |
---|---|---|---|---|
AllowSnapshotIsolation | ALLOW_SNAPSHOT_ISOLATION |
데이터베이스 설정, 운영, 스냅샷 격리 허용 | False | {True|False} |
AnsiNulls | ANSI_NULLS |
데이터베이스 설정, SET ANSI_NULLS | True | {True|False} |
AnsiPadding | ANSI_PADDING |
데이터베이스 설정, SET ANSI_PADDING | True | {True|False} |
AnsiWarnings | ANSI_WARNINGS |
데이터베이스 설정, SET ANSI_WARNINGS | True | {True|False} |
ArithAbort | ARITHABORT |
데이터베이스 설정, SET ARITHABORT | True | {True|False} |
AutoClose | AUTO_CLOSE |
데이터베이스 설정, 운영, 자동 닫기 | False | {True|False} |
AutoCreateStatistics | AUTO_CREATE_STATISTICS |
데이터베이스 설정, 운영, 통계 자동 만들기 | True | {True|False} |
AutoCreateStatisticsIncremental |
AUTO_CREATE_STATISTICS (INCREMENTAL ) |
데이터베이스 설정, 운영 설정, 자동 증분 생성 | False | {True|False} |
AutoShrink | AUTO_SHRINK |
데이터베이스 설정, 운영, 자동 축소 | False | {True|False} |
AutoUpdateStatistics | AUTO_UPDATE_STATISTICS |
데이터베이스 설정, 운영, 자동 업데이트 통계 | True | {True|False} |
AutoUpdateStatisticsAsynchronously | AUTO_UPDATE_STATISTICS_ASYNC |
데이터베이스 설정, 운영, 통계 자동 업데이트 비동기 | False | {True|False} |
ChangeTrackingRetentionPeriod | CHANGE_RETENTION |
데이터베이스 설정, 운영, 변경 내용 추적 보존 기간 | 2 | {integer} |
ChangeTrackingRetentionUnit | CHANGE_RETENTION |
데이터베이스 설정, 운영, 변경 내용 추적 보존 기간 | MINUTES | {DAYS|HOURS|MINUTES} |
CloseCursorOnCommitEnabled | CURSOR_CLOSE_ON_COMMIT |
데이터베이스 설정, 작동, 커밋을 사용할 때 커서 닫기 | False | {True|False} |
CompatibilityMode | COMPATIBILITY_LEVEL |
데이터베이스 설정, 호환성 수준 | {100|110|120|130|140|150|160|170}1 | |
ConcatNullYieldsNull | CONCAT_NULL_YIELDS_NULL |
데이터베이스 설정, SET CONCAT_NULL_YIELDS_NULL | True | {True|False} |
Containment | CONTAINMENT |
데이터베이스 설정, 컨테인먼트 | NONE | {NONE|PARTIAL} |
DacApplicationName | 데이터 계층 애플리케이션(.dacpac ) 속성, 이름 |
프로젝트 이름 | {string} | |
DacDescription | 데이터 계층 애플리케이션(.dacpac ) 속성, 설명 |
{string} | ||
DacVersion | 데이터 계층 애플리케이션(.dacpac ) 속성, 버전 |
1.0.0.0 | {의미 체계 버전 번호} | |
DatabaseAccess | db_user_access_option |
데이터베이스 설정, 데이터베이스 액세스 | MULTI_USER | {MULTI_USER|SINGLE_USER|RESTRICTED_USER} |
DatabaseChaining | DB_CHAINING |
데이터베이스 설정, 데이터베이스 연결 | False | {True|False} |
DatabaseDefaultFulltextLanguage | DEFAULT_FULLTEXT_LANGUAGE |
데이터베이스 설정, 기본 전체 텍스트 언어 | 1033 | {정수 언어 ID} |
DatabaseDefaultLanguage | DEFAULT_LANGUAGE |
데이터베이스 설정, 기본 언어 | 1033 | {정수 언어 ID} |
DatabaseState | db_state_option |
데이터베이스 설정, 데이터베이스 상태 | ONLINE | {ONLINE|OFFLINE} |
DbScopedConfigLegacyCardinalityEstimation |
LEGACY_CARDINALITY_ESTIMATION
2 |
데이터베이스 범위 구성, 레거시 카디널리티 예측 | Off | {Off|On} |
DbScopedConfigLegacyCardinalitySecondaryEstimation |
LEGACY_CARDINALITY_SECONDARY_ESTIMATION
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 레거시 카디널리티 예측 | Primary | {Primary|Off|On} |
DbScopedConfigParameterSniffing |
PARAMETER_SNIFFING
2 |
데이터베이스 범위 구성, 매개 변수 검색 | On | {On|Off} |
DbScopedConfigParameterSniffingSecondary |
PARAMETER_SNIFFING_SECONDARY
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 매개 변수 검색 | Primary | {Primary|Off|On} |
DbScopedConfigOptimizerHotfixes |
OPTIMIZER_HOTFIXES
2 |
데이터베이스 범위 구성, 쿼리 최적화 패치 | Off | {Off|On} |
DbScopedConfigOptimizerHotfixesSecondary |
OPTIMIZER_HOTFIXES_SECONDARY
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 쿼리 최적화 도구 핫픽스 | Primary | {Primary|Off|On} |
DbScopedConfigMaxDOP |
MAXDOP
2 |
데이터베이스 범위 구성, 최대 병렬 처리 수준 | 0 | {integer} |
DbScopedConfigMaxDOPSecondary |
MAXDOP_SECONDARY
2 |
데이터베이스 범위 구성, 보조 데이터베이스에 대한 최대 병렬 처리 수준 | {integer} | |
DbScopedConfigDWCompatibilityLevel |
DW_COMPATIBILITY_LEVEL
2 |
데이터베이스 범위 구성, DW 호환성 수준 | 0 | {0|10|20|30|40|50|9000}3 |
DefaultCollation |
COLLATE
4 |
데이터베이스 설정, 데이터베이스 데이터 정렬 | SQL_Latin1_General_CP1_CI_AS | 유효한 값은 SQL Server 데이터 정렬 이름 참조하세요. |
DefaultCursor | CURSOR_DEFAULT |
데이터베이스 설정, 작동, 기본 커서 | Local | {Global|Local} |
DefaultFilegroup | 데이터베이스 설정, 운영, 기본 파일 그룹 | PRIMARY | {string} | |
DefaultFileStreamFilegroup | 데이터베이스 설정, 운영, 기본 파일 스트림 파일 그룹 | {string} | ||
DefaultSchema | 일반 프로젝트 설정, 기본 스키마 | dbo | {string} | |
DelayedDurability | DELAYED_DURABILITY |
데이터베이스 설정, 운영 설정, 트랜잭션의 지연 내구성 | DISABLED | {DISABLED|ALLOWED|FORCED} |
DSP | SQL 프로젝트의 대상 플랫폼 | 유효한 값은 대상 플랫폼 참조하세요. | ||
EnableFullTextSearch | 데이터베이스 설정, 전체 텍스트 검색 사용 | True | {True|False} | |
FileStreamDirectoryName |
FILESTREAM (DIRECTORY_NAME ) |
데이터베이스 설정, FILESTREAM 디렉터리 이름 | {string} | |
IsBrokerPriorityHonored | HONOR_BROKER_PRIORITY |
데이터베이스 설정, 중개자 우선순위가 적용됨 | False | {True|False} |
IsChangeTrackingAutoCleanupOn | CHANGE_TRACKING |
데이터베이스 설정, 운영, 변경 내용 추적 자동 정리 | True | {True|False} |
IsChangeTrackingOn | CHANGE_TRACKING |
데이터베이스 설정, 운영, 변경 내용 추적 | False | {True|False} |
IsEncryptionOn | ENCRYPTION |
데이터베이스 설정, 암호화 사용 | False | {True|False} |
IsLedgerOn |
LEDGER
4 |
데이터베이스 설정, 원장 활성화 | False | {True|False} |
IsNestedTriggersOn | NESTED_TRIGGERS |
데이터베이스 설정, 중첩 트리거 사용 | True | {True|False} |
IsTransformNoiseWordsOn | TRANSFORM_NOISE_WORDS |
데이터베이스 설정, 노이즈 단어 처리 | False | {True|False} |
MemoryOptimizedElevateToSnapshot | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT |
데이터베이스 설정, 운영, 메모리 최적화 스냅샷으로 전환 | False | {True|False} |
ModelCollation | 프로젝트 설정, 데이터 정렬 | 1033,CI | {정수 언어 ID}, {CI|CS} | |
NonTransactedFileStreamAccess | NON_TRANSACTED_ACCESS |
데이터베이스 설정, FILESTREAM 트랜잭션을 사용하지 않는 액세스 | OFF | {OFF|READ_ONLY|FULL} |
NumericRoundAbort | NUMERIC_ROUNDABORT |
데이터베이스 설정, SET NUMERIC_ROUNDABORT | False | {True|False} |
OutputPath | 빌드 설정, 출력 경로 |
bin\Debug 및 bin\Release |
{string} | |
PageVerify | PAGE_VERIFY |
데이터베이스 설정, 운영, 페이지 확인 | NONE | {NONE|TORN_PAGE_DETECTION|CHECKSUM} |
Parameterization | PARAMETERIZATION |
데이터베이스 설정, 매개 변수화 | SIMPLE | {SIMPLE|FORCED} |
QueryStoreCaptureMode |
QUERY_STORE (QUERY_CAPTURE_MODE ) |
데이터베이스 설정, 운영, 쿼리 저장소 캡처 모드 | ALL | {OFF|ALL|AUTO} |
QueryStoreDesiredState |
QUERY_STORE (OPERATION_MODE ) |
데이터베이스 설정, 운영, 쿼리 저장소 작업 모드 | OFF | {OFF|READ_WRITE|READ_ONLY} |
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} |
QueryStoreMaxStorageSize |
QUERY_STORE (MAX_STORAGE_SIZE_MB ) |
데이터베이스 설정, 운영, 쿼리 저장소 최대 스토리지 크기(MB) | 100 | {integer} |
QueryStoreStaleQueryThreshold |
QUERY_STORE (STALE_QUERY_THRESHOLD_DAYS ) |
데이터베이스 설정, 운영, 쿼리 저장소 부실 쿼리 임계값(일) | 367 | {integer} |
QuotedIdentifier | QUOTED_IDENTIFIER |
데이터베이스 설정, SET QUOTED_IDENTIFIER | True | {True|False} |
ReadCommittedSnapshot | READ_COMMITTED_SNAPSHOT |
데이터베이스 설정, 운영 상태, 읽기 커밋된 스냅샷 | False | {True|False} |
Recovery | RECOVERY |
데이터베이스 설정, 운영, 복구 | FULL | {FULL|SIMPLE|BULK_LOGGED} |
RecursiveTriggersEnabled | RECURSIVE_TRIGGERS |
데이터베이스 설정, 재귀 트리거 사용 | False | {True|False} |
ServiceBrokerOption | SERVICE_BROKER |
데이터베이스 설정, 서비스 브로커 옵션 | DisableBroker | {DisableBroker|EnableBroker|NewBroker|ErrorBrokerConversations} |
SuppressTSqlWarnings | 빌드 설정, T-SQL 경고 표시 안 함(쉼표로 구분된 T-SQL 경고 코드 목록) | {string} | ||
TargetRecoveryTimePeriod | 데이터베이스 설정, 운영, 대상 복구 시간(초) | 데이터베이스별로 간접 검사점의 빈도를 지정합니다. | 60 | {integer} |
TargetRecoveryTimeUnit | 데이터베이스 설정, 운영, 대상 복구 시간 | SECONDS | {MINUTES|SECONDS} | |
TreatTSqlWarningsAsErrors | 빌드 설정, T-SQL 경고를 오류로 처리 | False | {True|False} | |
Trustworthy | TRUSTWORTHY |
데이터베이스 설정, 신뢰할 수 있는 | False | {True|False} |
TwoDigitYearCutoff | TWO_DIGIT_YEAR_CUTOFF |
데이터베이스 설정, 두 자리 연도 구분 | 2049 | {integer} |
UpdateOptions | db_update_option |
데이터베이스 설정, 업데이트 옵션 | READ_WRITE | {READ_WRITE|READ_ONLY} |
ValidateCasingOnIdentifiers | 일반 프로젝트 설정 및 식별자 대문자/소문자 유효성 검사 | True | {True|False} |
- 기본값은 엔진 버전 및 서버 설정에 따라 다릅니다.
- 데이터베이스 범위 구성 옵션입니다.
- AUTO는 0 값으로 설정됩니다.
-
CREATE DATABASE
옵션로만 적용됩니다.