適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
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 屬性只會在 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_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 | {整數 語言標識符} |
| 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 |
FILESTREAM (DIRECTORY_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\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 |
資料庫設定、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} |