共用方式為


SQL 項目屬性

適用於:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric 中的 SQL 資料庫

除了個別 .sql 檔案的內容之外,SQL Database 專案還包含定義專案行為和資料庫層級設定的屬性。 這些屬性會儲存在 .sqlproj 檔案中,而且可以直接編輯 .sqlproj 檔案來設定。 某些 SQL 專案工具,例如 Visual Studio 和 VS Code,提供在圖形使用者介面中編輯一些或多個專案屬性的存取權。 本文提供您可以針對 SQL 資料庫項目設定的屬性概觀。

常用的 SQL 專案屬性包括:

停用資料庫選項變更

在 SQL 專案發佈期間,資料庫選項的變更會根據專案屬性中定義的值和預設專案值來編寫腳本。 若要防止在發佈期間修改資料庫選項,請使用 SqlPackage CLI 或 Visual Studio 之類的工具,將 publish 屬性設定為 false ScriptDatabaseOptions。 此設定也可以併入發行配置檔中。

一般項目屬性

目標平臺 屬性會指定專案目標 SQL Server 的版本。 DSP 屬性可用來設定 SQL 專案的目標平臺。 如需目標平臺的詳細資訊,請參閱 目標平臺 一文。

程序代碼分析可藉由在開發生命週期早期攔截潛在問題,大幅改善持續整合和部署程式。 深入瞭解如何啟用程式代碼分析,並在 SQL 程式代碼分析 一文中包含自定義規則。

數據層應用程式屬性

下列屬性可用來定義在建置 SQL 專案時所建立的數據層應用程式 (DAC)。

  • DacApplicationName:資料層應用程式的名稱 .dacpac。 預設值為項目名稱。
  • DacDescription:資料層應用程式 .dacpac的選擇性描述。
  • DacVersion:資料層應用程式版本 .dacpac。 預設值為 1.0.0.0

預設結構

DefaultSchema 屬性會設定 SQL 專案的預設架構。 此屬性適用於單一部分的具名物件。 預設值為 dbo

T-SQL 警告

SuppressTSqlWarningsTreatTSqlWarningsAsErrors 屬性可控制在專案建置期間如何處理 T-SQL 警告。 SuppressTSqlWarnings 屬性會在專案建置期間隱藏 T-SQL 警告,指定為逗號分隔的錯誤編號清單。

TreatTSqlWarningsAsErrors 屬性會將 T-SQL 警告視為錯誤,這會導致建置因任何 T-SQL 警告而失敗。 TreatTSqlWarningsAsErrors 預設值為 False

項目屬性的範例使用方式

下列範例示範如何在 SQL 專案檔中設定 CompatibilityModeIsChangeTrackingOnTreatTSqlWarningsAsErrors 屬性。 CompatibilityMode 屬性會設定為 130IsChangeTrackingOn 屬性設定為 True,而 TreatTSqlWarningsAsErrors 屬性設定為 TrueTreatSqlWarningsAsErrors 屬性只會在 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 標籤 SQL 項目預設值 允許的值
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_STATISTICSINCREMENTAL 資料庫設定、運行、自動創建增量 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 {整數 語言標識符}
DatabaseDefaultLanguage DEFAULT_LANGUAGE 資料庫設定、默認語言 1033 {整數 語言標識符}
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 資料庫設定、操作、預設 filestream 檔案群組 {string}
DefaultSchema 一般項目設定,默認架構 dbo {string}
DelayedDurability DELAYED_DURABILITY 資料庫設定、操作、交易延遲持久性 DISABLED {DISABLED|ALLOWED|FORCED}
DSP SQL 專案的 目標平臺 如需有效值,請參閱 目標平臺
EnableFullTextSearch 資料庫設定,啟用全文搜索 True {True|False}
FileStreamDirectoryName FILESTREAMDIRECTORY_NAME 資料庫設定、FILESTREAM 目錄名稱 {string}
IsBrokerPriorityHonored HONOR_BROKER_PRIORITY 資料庫設定,Broker 優先順序已被遵從 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 {integer language id},{CI|CS}
NonTransactedFileStreamAccess NON_TRANSACTED_ACCESS 資料庫設定、FILESTREAM 非交易存取 OFF {OFF|READ_ONLY|FULL}
NumericRoundAbort NUMERIC_ROUNDABORT 資料庫設定、SET NUMERIC_ROUNDABORT False {True|False}
OutputPath 組建設定、輸出路徑 bin\Debugbin\Release {string}
PageVerify PAGE_VERIFY 資料庫設定、操作、頁面驗證 NONE {NONE|TORN_PAGE_DETECTION|CHECKSUM}
Parameterization PARAMETERIZATION 資料庫設定、參數化 SIMPLE {SIMPLE|FORCED}
QueryStoreCaptureMode QUERY_STOREQUERY_CAPTURE_MODE 資料庫設定、運行、查詢存放區捕捉模式 ALL {OFF|ALL|AUTO}
QueryStoreDesiredState QUERY_STOREOPERATION_MODE 資料庫設定、作業、查詢存放區運行模式 OFF {OFF|READ_WRITE|READ_ONLY}
QueryStoreFlushInterval QUERY_STOREDATA_FLUSH_INTERVAL_SECONDS 資料庫設定、操作、查詢儲存區數據清除間隔(秒) 900 {integer}
QueryStoreIntervalLength QUERY_STOREINTERVAL_LENGTH_MINUTES 資料庫設定、操作、查詢儲存區間長度(分鐘) 60 {integer}
QueryStoreMaxPlansPerQuery QUERY_STOREMAX_PLANS_PER_QUERY 資料庫設定、操作、查詢存放區中每個查詢的最大計劃 200 {integer}
QueryStoreMaxStorageSize QUERY_STOREMAX_STORAGE_SIZE_MB 資料庫設定、操作、查詢存放區最大存儲大小(MB) 100 {integer}
QueryStoreStaleQueryThreshold QUERY_STORESTALE_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 資料庫設定、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}
  1. 預設值會根據引擎版本和伺服器設定而有所不同。
  2. 資料庫範圍組態 選項。
  3. AUTO 會設定為 0 值。
  4. 僅適用於 CREATE DATABASE選項