适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 中的 SQL 数据库
除了单个 .sql 文件的内容外,SQL 数据库项目还包含用于定义项目行为和数据库级设置的属性。 这些属性存储在 .sqlproj 文件中,可以通过直接编辑 .sqlproj 文件来设置。 某些 SQL 项目工具(如 Visual Studio 和 VS Code)提供在图形用户界面中编辑几个或许多项目属性的访问权限。 本文概述了可以为 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。
默认架构
该 DefaultSchema 属性设置 SQL 项目的默认架构。 此属性适用于单部件命名对象。 默认值是 dbo。
T-SQL 警告
SuppressTSqlWarnings和TreatTSqlWarningsAsErrors属性控制在项目生成期间如何处理 T-SQL 警告。 该 SuppressTSqlWarnings 属性在项目生成期间禁止显示 T-SQL 警告,该警告指定为逗号分隔的错误号列表。
TreatTSqlWarningsAsErrors 属性将 T-SQL 警告视为错误,从而导致任何 T-SQL 警告都会使生成失败。 TreatTSqlWarningsAsErrors 的默认值为 False。
项目属性的示例用法
以下示例演示如何在 SQL 项目文件中设置CompatibilityMode和IsChangeTrackingOnTreatTSqlWarningsAsErrors属性。 属性CompatibilityMode设置为130,属性IsChangeTrackingOn设置为True,并且属性TreatTSqlWarningsAsErrors设置为True。 在 Release 生成配置中,TreatSqlWarningsAsErrors 属性仅设置为 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 项目默认值 | 允许的值 | 
|---|---|---|---|---|
| AllowSnapshotIsolation | ALLOW_SNAPSHOT_ISOLATION | 数据库设置,操作,允许快照隔离 | 假 | {真|假} | 
| AnsiNulls | ANSI_NULLS | 数据库设置,SET ANSI_NULLS | True | {真|假} | 
| AnsiPadding | ANSI_PADDING | 数据库设置,SET ANSI_PADDING | True | {真|假} | 
| AnsiWarnings | ANSI_WARNINGS | 数据库设置,SET ANSI_WARNINGS | True | {真|假} | 
| ArithAbort | ARITHABORT | 数据库设置,SET ARITHABORT | True | {真|假} | 
| AutoClose | AUTO_CLOSE | 数据库设置,操作,自动关闭 | 假 | {真|假} | 
| 自动创建统计 | AUTO_CREATE_STATISTICS | 数据库设置、操作和自动创建统计信息 | True | {真|假} | 
| AutoCreateStatisticsIncremental | AUTO_CREATE_STATISTICS(INCREMENTAL) | 数据库设置,操作,增量自动创建 | 假 | 真|假 | 
| AutoShrink | AUTO_SHRINK | 数据库设置,操作,自动收缩 | 假 | {真|假} | 
| 自动更新统计数据 | AUTO_UPDATE_STATISTICS | 数据库设置、运行、自动更新统计信息 | True | {真|假} | 
| 异步自动更新统计数据 | AUTO_UPDATE_STATISTICS_ASYNC | 数据库设置、操作、自动异步更新统计信息 | 假 | {真|假} | 
| ChangeTrackingRetentionPeriod | CHANGE_RETENTION | 数据库设置,操作,更改跟踪保留期 | 2 | {integer} | 
| ChangeTrackingRetentionUnit | CHANGE_RETENTION | 数据库设置,操作,更改跟踪保留期 | MINUTES | {天|小时|分钟} | 
| CloseCursorOnCommitEnabled | CURSOR_CLOSE_ON_COMMIT | 数据库设置,操作,已启用提交时关闭游标 | 假 | {真|假} | 
| CompatibilityMode | COMPATIBILITY_LEVEL | 数据库设置,兼容性级别 | {100|110|120|130|140|150|160|170}1 | |
| ConcatNullYieldsNull | CONCAT_NULL_YIELDS_NULL | 数据库设置,SET CONCAT_NULL_YIELDS_NULL | True | {真|假} | 
| Containment | CONTAINMENT | 数据库设置,约束 | 没有 | {NONE|PARTIAL} | 
| DacApplicationName | 数据层应用程序 ( .dacpac) 属性,名称 | 项目名称 | {string} | |
| DacDescription | 数据层应用程序 ( .dacpac) 属性,说明 | {string} | ||
| DacVersion | 数据层应用程序 ( .dacpac) 属性,版本 | 1.0.0.0 | {语义版本号} | |
| DatabaseAccess | db_user_access_option | 数据库设置、数据库访问 | MULTI_USER | {多用户|单用户|限制用户} | 
| DatabaseChaining | DB_CHAINING | 数据库设置,数据库链接 | 假 | {真|假} | 
| DatabaseDefaultFulltextLanguage | DEFAULT_FULLTEXT_LANGUAGE | 数据库设置,默认全文语言 | 1033 | {整数 语言 ID} | 
| 数据库默认语言 | DEFAULT_LANGUAGE | 数据库设置,默认语言 | 1033 | {整数 语言 ID} | 
| DatabaseState | db_state_option | 数据库设置、数据库状态 | ONLINE | {在线|离线} | 
| DbScopedConfigLegacyCardinalityEstimation | LEGACY_CARDINALITY_ESTIMATION2 | 数据库范围的配置,传统基数估计 | 关闭 | {关闭|开启} | 
| DbScopedConfigLegacyCardinalitySecondaryEstimation | LEGACY_CARDINALITY_SECONDARY_ESTIMATION2 | 数据库范围的配置,辅助数据库的旧基数估算 | Primary | {Primary|Off|On} | 
| DbScopedConfigParameterSniffing | PARAMETER_SNIFFING2 | 数据库范围的配置,参数探查 | On | {开启|关闭} | 
| DbScopedConfigParameterSniffingSecondary | PARAMETER_SNIFFING_SECONDARY2 | 数据库范围的配置,辅助数据库的参数探查 | Primary | {Primary|Off|On} | 
| DbScopedConfigOptimizerHotfixes | OPTIMIZER_HOTFIXES2 | 数据库范围的配置,查询优化器热修补程序 | 关闭 | {关闭|开启} | 
| DbScopedConfigOptimizerHotfixesSecondary | OPTIMIZER_HOTFIXES_SECONDARY2 | 数据库范围的配置,辅助数据库的查询优化器热修补程序 | Primary | {Primary|Off|On} | 
| DbScopedConfigMaxDOP | MAXDOP2 | 数据库范围的配置,最大并行度 | 0 | {integer} | 
| DbScopedConfigMaxDOPSecondary | MAXDOP_SECONDARY2 | 数据库范围的配置,辅助数据库的最大并行度 | {integer} | |
| DbScopedConfigDWCompatibilityLevel | DW_COMPATIBILITY_LEVEL2 | 数据库范围的配置,DW 兼容性级别 | 0 | {0|10|20|30|40|50|9000}3 | 
| DefaultCollation | COLLATE4 | 数据库设置,数据库排序规则 | SQL_Latin1_General_CP1_CI_AS | 有关有效值,请参阅 SQL Server 排序规则名称 。 | 
| DefaultCursor | CURSOR_DEFAULT | 数据库设置、运作、默认游标 | 本地 | {Global|Local} | 
| DefaultFilegroup | 数据库设置、运行、默认文件组 | PRIMARY | {string} | |
| DefaultFileStreamFilegroup | 数据库设置、操作、默认文件流文件组 | {string} | ||
| DefaultSchema | 常规项目设置,默认架构 | dbo | {string} | |
| DelayedDurability | DELAYED_DURABILITY | 数据库设置,操作,事务延迟持久性 | DISABLED | {禁用|允许|强制} | 
| 数字信号处理 | SQL 项目的目标平台 | 请参阅目标平台以获取有效值。 | ||
| 启用全文搜索 | 数据库设置,启用全文搜索 | True | {真|假} | |
| FileStreamDirectoryName | FILESTREAM(DIRECTORY_NAME) | 数据库设置、FILESTREAM 目录名称 | {string} | |
| IsBrokerPriorityHonored | HONOR_BROKER_PRIORITY | 数据库设置,遵循代理优先级 | 假 | {True|False} | 
| IsChangeTrackingAutoCleanupOn | CHANGE_TRACKING | 数据库设置,操作,更改跟踪自动清理 | True | {True|False} | 
| IsChangeTrackingOn | CHANGE_TRACKING | 数据库设置、操作、更改跟踪 | 假 | {真|假} | 
| 加密是否开启 | ENCRYPTION | 数据库设置,已启用加密 | 假 | {真|假} | 
| IsLedgerOn | LEDGER4 | 数据库设置,启用账本 | 假 | {True|False} | 
| IsNestedTriggersOn | NESTED_TRIGGERS | 数据库设置,已启用嵌套触发器 | True | {真|假} | 
| IsTransformNoiseWordsOn | TRANSFORM_NOISE_WORDS | 数据库设置,转换噪声词 | 假 | {真|假} | 
| MemoryOptimizedElevateToSnapshot | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT | 数据库设置,操作,内存优化提升为快照 | 假 | {真|假} | 
| ModelCollation | 项目设置,排序规则 | 1033,CI | {integer language id}, {CI|CS} | |
| NonTransactedFileStreamAccess | NON_TRANSACTED_ACCESS | 数据库设置,FILESTREAM 非事务访问 | OFF | {关闭|只读|全部} | 
| NumericRoundAbort | NUMERIC_ROUNDABORT | 数据库设置,SET NUMERIC_ROUNDABORT | 假 | {真|假} | 
| 输出路径 | 生成设置,输出路径 | bin\Debug和bin\Release | {string} | |
| 页面验证 | PAGE_VERIFY | 数据库设置、操作、页面验证 | 没有 | {NONE|TORN_PAGE_DETECTION|CHECKSUM} | 
| 参数化 | PARAMETERIZATION | 数据库设置,参数化 | SIMPLE | {SIMPLE|FORCED} | 
| QueryStoreCaptureMode | QUERY_STORE(QUERY_CAPTURE_MODE) | 数据库设置,操作,查询存储捕获模式 | ALL | {关闭|全部|自动} | 
| 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) | 数据库设置,操作,查询存储间隔时长(分钟) | 六十 | {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 | 数据库设置,操作,读取提交的快照 | 假 | {真|假} | 
| 恢复 | RECOVERY | 数据库设置、操作、恢复 | FULL | {FULL|SIMPLE|BULK_LOGGED} | 
| RecursiveTriggersEnabled | RECURSIVE_TRIGGERS | 数据库设置,已启用递归触发器 | 假 | {真|假} | 
| ServiceBrokerOption | SERVICE_BROKER | 数据库设置、Service Broker 选项 | DisableBroker | {DisableBroker|EnableBroker|NewBroker|ErrorBrokerConversations} | 
| SuppressTSqlWarnings | 生成设置,禁止显示 T-SQL 警告(T-SQL 警告代码的逗号分隔列表) | {string} | ||
| TargetRecoveryTimePeriod | 数据库设置、操作、目标恢复时间(秒) | 指定每个数据库上间接检查点的频率。 | 六十 | {integer} | 
| TargetRecoveryTimeUnit | 数据库设置,操作,目标恢复时间 | SECONDS | {MINUTES|SECONDS} | |
| 将TSql警告视为错误 | 生成设置,将 T-SQL 警告视为错误 | 假 | {真|假} | |
| 可信 | TRUSTWORTHY | 数据库设置,可信 | 假 | {真|假} | 
| TwoDigitYearCutoff | TWO_DIGIT_YEAR_CUTOFF | 数据库设置,两位数年份的截止点 | 2049 | {integer} | 
| UpdateOptions | db_update_option | 数据库设置、更新选项 | READ_WRITE | {READ_WRITE|READ_ONLY} | 
| ValidateCasingOnIdentifiers | 常规项目设置,验证标识符的字母大小写 | True | {真|假} |