分享方式:


SQL 項目屬性

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控實例Microsoft 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 屬性只會在 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 資料庫設定、操作、自動關閉 {真|假}
AutoCreateStatistics (自動建立統計資料) AUTO_CREATE_STATISTICS 資料庫設定、操作、自動建立統計數據 {真|假}
自動縮小 AUTO_SHRINK 資料庫設定、操作、自動壓縮 {真|假}
自動更新統計 AUTO_UPDATE_STATISTICS 資料庫設定、操作、自動更新統計數據 {真|假}
自動異步更新統計資料 AUTO_UPDATE_STATISTICS_ASYNC 資料庫設定、操作、自動異步更新統計數據 {真|假}
變更追蹤保留期間 (ChangeTrackingRetentionPeriod) 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}
Dac描述 數據層應用程式 (.dacpac) 屬性,描述 {string}
DacVersion 數據層應用程式 (.dacpac) 屬性,版本 1.0.0.0 {semantic version number}
DatabaseAccess db_user_access_option 資料庫設定、數據庫存取 多用戶 {多用戶|單用戶|限制用戶}
資料庫鏈結 DB_CHAINING 資料庫設定、資料庫鏈結 {真|假}
DatabaseDefaultFulltextLanguage(資料庫預設全文語言) DEFAULT_FULLTEXT_LANGUAGE 資料庫設定、預設全文檢索語言 1033 {integer language id}
資料庫預設語言 DEFAULT_LANGUAGE 資料庫設定、默認語言 1033 {integer language id}
DatabaseState db_state_option 資料庫設定、資料庫狀態 在線 {ONLINE|OFFLINE}
資料庫作用域配置舊版基數估算 LEGACY_CARDINALITY_ESTIMATION 2 資料庫範圍設定、舊版基數估計 關閉 {關閉|開啟}
DbScopedConfigLegacyCardinalitySecondaryEstimation (資料庫範疇設定舊有基數次級估算) LEGACY_CARDINALITY_SECONDARY_ESTIMATION 2 資料庫範圍的配置、舊版基數估計 主要 {主要|關閉|開啟}
資料庫範圍配置參數偵測 PARAMETER_SNIFFING 2 資料庫範圍設定、參數偵測 {開啟|關閉}
DbScopedConfigParameterSniffingSecondary PARAMETER_SNIFFING_SECONDARY 2 資料庫範圍設定、次要參數探查 主要 {主要|關閉|開啟}
DbScopedConfigOptimizer熱修復 OPTIMIZER_HOTFIXES 2 資料庫範圍設定、查詢最佳化程式修正補丁 關閉 {關閉|開啟}
DbScopedConfigOptimizerHotfixesSecondary OPTIMIZER_HOTFIXES_SECONDARY 2 資料庫範圍設定、次要環境的查詢優化器修正 主要 {主要|關閉|開啟}
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
預設排序規則 COLLATE 4 資料庫設定、資料庫定序 SQL_Latin1_General_CP1_CI_AS 如需有效值,請參閱 SQL Server 定序名稱
預設游標 CURSOR_DEFAULT 資料庫設定、操作、預設游標 當地 {Global|Local}
DefaultFilegroup 資料庫設定、操作、預設檔案群組 主要 {string}
DefaultFileStreamFilegroup 資料庫設定、操作、預設 filestream 檔案群組 {string}
預設結構 一般項目設定,默認架構 dbo {string}
延遲持久性 DELAYED_DURABILITY 資料庫設定、操作、交易延遲持久性 禁用 {禁用|允許|強制}
數位訊號處理 (DSP) SQL 專案的 目標平臺 如需有效值,請參閱 目標平臺
啟用全文檢索 資料庫設定,啟用全文搜索 真實 {真|假}
文件流目錄名稱 FILESTREAMDIRECTORY_NAME 資料庫設定、FILESTREAM 目錄名稱 {string}
是否尊重經紀優先權 HONOR_BROKER_PRIORITY 資料庫設定,Broker 優先順序已被遵從 {正確|錯誤}
是否啟用變更追蹤自動清理 CHANGE_TRACKING 資料庫設定、操作、自動清理變更追蹤 {真|假}
IsChangeTrackingOn CHANGE_TRACKING 資料庫設定、運作、變更追蹤 {是|否}
加密是否已開啟 ENCRYPTION 資料庫設定,已啟用加密 {是|否}
IsLedgerOn LEDGER 4 資料庫設置,啟用帳本 {真|假}
IsNestedTriggersOn NESTED_TRIGGERS 資料庫設定,已啟用巢狀觸發器 真實 {真|假}
IsTransformNoiseWordsOn (噪音詞轉換開啟) TRANSFORM_NOISE_WORDS 資料庫設定、轉換雜訊詞 {真|假}
MemoryOptimizedElevateToSnapshot MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT 資料庫設定、運作、記憶體優化提升至快照 {真|假}
ModelCollation 項目設定、定序 1033,CI {integer language id},{CI|CS}
非交易文件流存取 NON_TRANSACTED_ACCESS 資料庫設定、FILESTREAM 非交易存取 關閉 {關閉|唯讀|完全}
NumericRoundAbort NUMERIC_ROUNDABORT 資料庫設定、SET NUMERIC_ROUNDABORT {真|假}
輸出路徑 組建設定、輸出路徑 bin\Debugbin\Release {string}
頁面驗證 PAGE_VERIFY 資料庫設定、操作、頁面驗證 沒有 {NONE|TORN_PAGE_DETECTION|CHECKSUM}
參數化 PARAMETERIZATION 資料庫設定、參數化 簡單 {簡單|強制}
QueryStoreCaptureMode QUERY_STOREQUERY_CAPTURE_MODE 資料庫設定、運行、查詢存放區捕捉模式 {OFF|ALL|AUTO}
查詢存儲期望狀態 QUERY_STOREOPERATION_MODE 資料庫設定、作業、查詢存放區運行模式 關閉 {關閉|讀寫|唯讀}
查詢儲存刷新間隔 QUERY_STOREDATA_FLUSH_INTERVAL_SECONDS 資料庫設定、操作、查詢儲存區數據清除間隔(秒) 900 {integer}
查詢存儲間隔長度 QUERY_STOREINTERVAL_LENGTH_MINUTES 資料庫設定、操作、查詢儲存區間長度(分鐘) 60 {integer}
QueryStoreMaxPlansPerQuery QUERY_STOREMAX_PLANS_PER_QUERY 資料庫設定、操作、查詢存放區中每個查詢的最大計劃 200 {integer}
查詢儲存區最大存儲空間大小 QUERY_STOREMAX_STORAGE_SIZE_MB 資料庫設定、操作、查詢存放區最大存儲大小(MB) 100 {integer}
查詢存儲過期查詢閾值 QUERY_STORESTALE_QUERY_THRESHOLD_DAYS 資料庫設定、操作、查詢存放區過期查詢的閾值(天) 367 {integer}
引號識別符 QUOTED_IDENTIFIER 資料庫設定:SET QUOTED_IDENTIFIER 真實 {真|假}
讀取已提交快照 READ_COMMITTED_SNAPSHOT 資料庫設定、操作、讀取已提交快照 {真|假}
恢復 RECOVERY 資料庫設定、操作、恢復 滿 {完整|簡單|大容量記錄}
RecursiveTriggersEnabled (遞迴觸發器啟用) RECURSIVE_TRIGGERS 啟用資料庫設定、遞迴觸發程式 {真|假}
ServiceBrokerOption SERVICE_BROKER 資料庫設定、Service Broker 選項 DisableBroker {停用經紀人|啟用經紀人|新增經紀人|錯誤經紀人對話}
SuppressTSqlWarnings 建置設定、隱藏 T-SQL 警告 (T-SQL 警告碼的逗號分隔清單) {string}
目標復原時間周期 資料庫設定、運作、目標復原時間(秒) 指定每個資料庫間接檢查點的頻率。 60 {integer}
目標恢復時間單位 資料庫設定、操作、目標錄製時間 {分鐘、秒}
將T-SQL警告視為錯誤 建置設定,將 T-SQL 警告視為錯誤 {真|假}
值得 信賴 TRUSTWORTHY 資料庫設定,可信任 {真|假}
兩位數年份截止 TWO_DIGIT_YEAR_CUTOFF 資料庫設定,兩位數年份界限 2049 {integer}
更新選項 db_update_option 資料庫設定、更新選項 讀寫 {讀寫|唯讀}
識別符號大小寫驗證 一般專案設定,驗證識別碼的大小寫 真實 {真|假}
  1. 預設值會根據引擎版本和伺服器設定而有所不同。
  2. 資料庫範圍組態 選項。
  3. AUTO 會設定為 0 值。
  4. 僅適用於 CREATE DATABASE選項