SQL 项目属性

适用于:SQL ServerAzure 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 警告

SuppressTSqlWarningsTreatTSqlWarningsAsErrors属性控制在项目生成期间如何处理 T-SQL 警告。 该 SuppressTSqlWarnings 属性在项目生成期间禁止显示 T-SQL 警告,该警告指定为逗号分隔的错误号列表。

TreatTSqlWarningsAsErrors 属性将 T-SQL 警告视为错误,从而导致任何 T-SQL 警告都会使生成失败。 TreatTSqlWarningsAsErrors 的默认值为 False

项目属性的示例用法

以下示例演示如何在 SQL 项目文件中设置CompatibilityModeIsChangeTrackingOnTreatTSqlWarningsAsErrors属性。 属性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\Debugbin\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 {真|假}
  1. 默认值因引擎版本和服务器设置而异。
  2. 数据库范围的配置 选项。
  3. AUTO 设置为 0 值。
  4. 仅作为CREATE DATABASE选项应用。