SQL 項目屬性
適用於:SQL Server
Azure SQL Database
Azure 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 警告
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 |
資料庫設定、操作、自動關閉 | 假 | {真|假} |
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 專案的 目標平臺 | 如需有效值,請參閱 目標平臺。 | ||
啟用全文檢索 | 資料庫設定,啟用全文搜索 | 真實 | {真|假} | |
文件流目錄名稱 |
FILESTREAM (DIRECTORY_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\Debug 和 bin\Release |
{string} | |
頁面驗證 | PAGE_VERIFY |
資料庫設定、操作、頁面驗證 | 沒有 | {NONE|TORN_PAGE_DETECTION|CHECKSUM} |
參數化 | PARAMETERIZATION |
資料庫設定、參數化 | 簡單 | {簡單|強制} |
QueryStoreCaptureMode |
QUERY_STORE (QUERY_CAPTURE_MODE ) |
資料庫設定、運行、查詢存放區捕捉模式 | 都 | {OFF|ALL|AUTO} |
查詢存儲期望狀態 |
QUERY_STORE (OPERATION_MODE ) |
資料庫設定、作業、查詢存放區運行模式 | 關閉 | {關閉|讀寫|唯讀} |
查詢儲存刷新間隔 |
QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS ) |
資料庫設定、操作、查詢儲存區數據清除間隔(秒) | 900 | {integer} |
查詢存儲間隔長度 |
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} |
查詢存儲過期查詢閾值 |
QUERY_STORE (STALE_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 |
資料庫設定、更新選項 | 讀寫 | {讀寫|唯讀} |
識別符號大小寫驗證 | 一般專案設定,驗證識別碼的大小寫 | 真實 | {真|假} |