SqlPackage 的发行说明

下载最新版本

本文列出了 SqlPackage 的已发布版本提供的功能和修补程序。

162.2.111 SqlPackage

发布日期:2024 年 2 月 27 日

dotnet tool install -g microsoft.sqlpackage --version 162.2.111
平台 下载
Windows .NET 8 zip 文件
Windows .msi 文件
macOS .NET 8 .zip 文件
Linux .NET 8 .zip 文件

功能

功能 详细信息
平台 引用了 Microsoft.Data.SqlClient v5.1.4。
平台 SqlPackage zi自包含 (.zip) 下载资源现已使用 .NET 8 生成。
平台 SqlPackage dotnet tool 现可用于 .NET 6 和 .NET 8。 GitHub 问题
平台 SqlPackage 预览版可以通过 dotnet tool 信息摘要获得。
Azure Synapse Analytics DW_COMPATIBILITY_LEVEL 项目属性添加了验证,以确保该值在项目生成期间的有效选项 0、10、20、30、40、50、9000 内。
部署 添加对 ONLINE 索引操作的支持。 在线索引操作可以作为 SqlPackage 命令行发布属性/p:PerformIndexOperationsOnline和 SQL 项目模型中的组件应用。 GitHub 问题
Parquet 改进了针对 Parquet 文件中的数据的提取和发布操作,包括通过并行导入数据和减小日志文件大小来提高性能。

修复项

Feature 详细信息
部署 修复了视图的 apply 子句中使用的函数包无法部署的问题。 之前的错误信息是找不到函数,因为在该函数之前错误地部署了视图。 GitHub 问题
部署 修复了无法正确识别 NATIVE_COMPILATIONSCHEMABINDING 等函数关键字并将其包含在部署脚本中的问题。 GitHub 问题开发者社区
部署 修复了对 values 子句中的系统表的引用无法生成,并显示“Value 不能为 null”的错误消息的问题。 开发人员社区
部署 修复了项目构建后引用 dacpac 的绝对路径(而不是相对路径)存储在 dacpac 中的问题。 GitHub 问题
部署 修正了一个问题,即如果要创建另一个禁用的索引,创建禁用的聚集索引会导致部署失败。 GitHub 问题
部署 修复了用户定义的数据类型的同义词导致无法解析引用的问题。 GitHub 问题
提取 修复了为包指定的版本未遵循 major.minor.build 格式时,无法设置 DacVersion 属性的问题。 GitHub 问题
导入 修复了某些排序规则(包括 Chinese_PRC_CI_AS)无法导入,并显示排序规则不受支持的错误消息的问题。 GitHub 问题
架构比较 修复了采用 UTF8 排序规则的数据库无法给出正确结果的问题。
架构比较 修复了评估 Synapse 无服务器 SQL 池时,架构比较不包括外部数据源、外部文件格式和外部表对象的问题。
安全性 修复了 .NET 上的 SqlPackage 对通用身份验证 (/ua) 的支持,支持采用多重身份验证 (MFA) 的 Microsoft Entra ID 身份验证。
系统 dacpac 修复了 Synapse Data Warehouse master.dacpac 中不包括 pdw* 视图的问题。 GitHub 问题开发者社区

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 空值
导入 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

162.1.172 SqlPackage

发布日期:2024 年 1 月 9 日

dotnet tool install -g microsoft.sqlpackage --version 162.1.172
平台 下载
Windows .NET 6 zip 文件
Windows .msi 文件
macOS .NET 6 zip 文件
Linux .NET 6 zip 文件

修复项

Feature 详细信息
平台 引用了 Microsoft.Data.SqlClient v5.1.3。

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 空值
导入 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

162.1.167 SqlPackage

发布日期:2023 年 10 月 19 日

平台 下载
Windows .NET 6 zip 文件
Windows .msi 文件
macOS .NET 6 zip 文件
Linux .NET 6 zip 文件

功能

功能 详细信息
平台 引用了 Microsoft.Data.SqlClient v5.1.1。
Azure Synapse Analytics 在 Azure Synapse Analytics 无服务器 SQL 池 PARSER_VERSION 中添加了对 FORMAT_OPTIONS 的支持。 文档
Azure Synapse Analytics 在 Azure Synapse Analytics 专用 SQL 池的 CREATE VIEW 中添加了对多列分布 (MCD) 的支持。 GitHub 问题
Azure Synapse Analytics 向 Parquet 文件添加了对提取操作的 /p:TableData 属性的支持,使能够指定要导出数据的表。 GitHub 问题
Fabric Data Warehouse 添加了对 Fabric Data Warehouse 数据库的提取和发布的支持。 发布功能不支持需要更改现有表的更改。 目标平台枚举值是 SQL 数据库项目中的 SqlDwUnifiedDatabaseSchemaProvider
Parquet 添加了使用 Azure SQL 托管实例和 SQL Server 2022 在 Azure Blob 存储中对存储在 Parquet 文件中的数据进行提取和发布的预览支持。 不支持 Azure SQL 数据库和 SQL Server 2019 及更早版本。 数据必须是 CETAS 支持的数据类型。 在很多情况下,使用 Parquet 文件进行提取和发布可改进 bacpac 文件的导入/导出性能。
发布 为发布操作添加 /p:AllowTableRecreation 属性。 默认值 (true) 与以前的行为一致,其中表更改可能需要在保留表数据时重新创建表,但部署可能需要花费大量时间,或者更改跟踪数据可能会丢失。 如果有表需要重新创建,将属性 /p:AllowTableRecreation 设置为 false 会导致部署不启动。 GitHub 问题

修复项

Feature 详细信息
应用程序 修复了重定向输出时 SqlPackage CLI 会引发异常的问题。 GitHub 问题
Azure Synapse Analytics 修复了发布操作无法分析包含 filepath()filename()函数的语句的问题。
导入 将 bacpac 导入不支持 AUTO_DROP 的 SQL Server 版本时,AUTO_DROP 选项会从统计信息中排除。
导入 修复了包含 ALTER 或 CREATE 的可用性组的数据库无法导入的问题。
导出 修复了在 bacpac 导出中引入已删除账本列导致导入期间出现错误消息的问题。
导出 修复了导出到 bacpac 文件时不遵循 /p:CompressionOption 的问题。
提取 修复了非 dacpac 选项的 /p:ExtractTarget 选项仍要求目标文件具有 .dacpac 扩展名的问题。 GitHub 问题
账本 修复了由于尝试为已删除的表创建权限,导入或发布包含已删除账本表的数据库失败的问题。
账本 修复了由于尝试将数据导入到已删除的表,包含已删除账本表的数据库导入失败的问题。
Polybase 修复了无法导出或提取具有 RDBMS 外部表的 Azure SQL 托管实例数据库的问题。 GitHub 问题
发布 如果对象是权限或角色成员身份,DropObjectsNotInSource 不会删除此类对象。 使用 DropPermissionsNotInSource 或 DropRoleMembersNotInSource 启用删除权限或角色成员身份。 GitHub 问题
发布 修复了用户连接无法访问 Azure SQL 数据库中的 master 时发布操作失败的问题。
发布 修复了包含与列加密交互的部署会遇到间歇性执行超时错误的问题。
发布 修复了如果 RegisterDataTierApplication 设置为 true,则部署使用 .NET/.NET Core 生成的 dacpac 将失败的问题。 GitHub 问题
发布 修复了修改系统版本控制表并且创建新架构导致部署失败的问题。 GitHub 问题

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 空值
导入 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

162.0.52 SqlPackage

发布日期:2023 年 5 月 11 日

平台 下载 版本
Windows .NET 6 zip 文件 162.0.52
Windows .msi 文件 162.0.52
macOS .NET 6 zip 文件 162.0.52
Linux .NET 6 zip 文件 162.0.52

功能

功能 详细信息
平台 SqlPackage 现收集使用数据,包括匿名功能使用情况和诊断数据。 有关详细信息,请参阅使用数据收集
平台 引用了 Microsoft.Data.SqlClient v5.1.0
Azure Synapse Analytics 添加了对 DW_COMPATIBILITY_LEVEL 的支持。
ScriptDOM ScriptDOM 现在 NuGet 上作为独立包提供,并在 GitHub 上开放源代码。
系统 dacpac mastermsdb 系统 dacpac 现在 NuGet 上以 Microsoft.SqlServer.Dacpacs.MasterMicrosoft.SqlServer.Dacpacs.Msdb 形式提供。 有关系统 dacpac 和使用 dacpac 作为包引用的详细信息,请查看 DacFx GitHub 存储库

修复项

Feature 详细信息
Azure Synapse Analytics 修复了连接到 Azure Synapse Analytics 无服务器 SQL 池时未正确设置默认命令超时的问题。
Azure Synapse Analytics 修复了 Azure Synapse Analytics 无服务器 SQL 池错误地确定默认数据和日志路径的问题。
Azure Synapse Analytics 修复了 Azure Synapse Analytics 无服务器 SQL 池错误地确定默认登录名、用户和架构的问题。
Azure SQL 数据库 修复了时态历史记录保留未正确识别为未配置 (null) 的问题。
部署 修复了部署计划无法检测到 FROM VALUES 子句的子查询中与表/视图的依赖关系的问题。 GitHub 问题
部署 修复了当目标数据库包含绑定到列的规则时部署失败的问题。
部署 修复了当目标数据库包含使用用户定义的类型绑定到列的规则时部署失败的问题。 GitHub 问题
部署 修复了对表进行另一次更改时时态表上的保留期将重置为默认值的问题。 GitHub 问题
部署 修复了当表指定了压缩选项时,对主键的更新不包括在部署中的问题。
部署 修复了即使未对表进行更改,也重新生成分区表上的非聚集索引的问题。 GitHub 问题
部署 修复了在对经系统版本控制的表不进行任何更改(列重新排序除外)时,历史记录表不遵循 ignorecolumnorder 属性的问题。
部署 修复了当表定义包含 SQLCMD 变量时,尽管没有更改,但外部表将被删除并重新部署的问题。 GitHub 问题
导出 修复了导出操作期间提供的诊断信息错误地报告表大小(用 KB 而非字节)的问题。 GitHub 问题
导入 修复了在导入到 Azure SQL 数据库期间无法创建 Azure Active Directory 用户,从而导致导入失败的问题。 GitHub 问题
账本 修复了当账本历史记录表或视图包含无效的两部分名称时 SqlPackage 无法正确识别错误的问题。
权限 修复了无法识别在数据库模型中分配给用户的权限,从而导致项目生成或 SqlPackage 操作失败的问题。
查询存储 修复了 flush_interval_secondsQuery Store 选项无法正确验证(最小值为 60 秒)的问题。
SQL Server 2022 修复了函数 DATETRUNC 无法识别为内置函数的问题。 开发者社区报告
SQL Server 2022 修复了函数 DATE_BUCKET 无法识别为内置函数的问题。

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 空值
导入 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

161.8089.0 SqlPackage

发布日期:2023 年 2 月 13 日

平台 下载 版本 构建
Windows .NET 6 zip 文件 161.8089.0 16.1.8089.0
Windows .msi 文件 161.8089.0 16.1.8089.0
macOS .NET 6 zip 文件 161.8089.0 16.1.8089.0
Linux .NET 6 zip 文件 161.8089.0 16.1.8089.0

重要

SqlPackage 版本 161 默认会加密数据库连接。 如果不更新 SqlPackage 参数,以前使用自签名证书或未加密的成功连接可能无法与 v161 连接。 有关详细信息,请参阅 https://aka.ms/dacfx-connection

功能

功能 详细信息
部署 添加使 GenerateSmartDefaults 属性能够在发布期间设置为 true 时根据默认约束填充值的功能。 GitHub 问题
Azure Synapse Analytics 添加了在提取和发布操作中对无服务器 SQL 池的支持。
SQL Server 2022 添加了对有序聚集列存储索引的支持。

修复项

Feature 详细信息
部署 修复了由于默认数据和日志路径为空而无法发布到 Linux 上的 SQL 的问题。 GitHub 问题
部署 修复了发布文件格式发生更改的外部表会导致错误的问题。 GitHub 问题
部署 修复了以下问题:如果无法访问列加密密钥 (CEK),则发布使用随机加密进行加密的列不会立即失败,部署错误会延迟到列加密步骤才出现。
重构 修复了以下问题:经系统版本控制的表上重命名的列会导致系统版本控制关闭且不会重新打开。 GitHub 问题
平台 修复了 SqlPackage 操作在 RHEL 9 上由于加密错误而失败的问题。 转换为使用 6.0.10 版本的 .NET 6 运行时。 GitHub 问题
架构比较 修复了以下问题:用于发布和脚本操作的 DoNotEvaluateSqlCmdVariables 属性会导致 SqlCmd 变量无法在源和目标上进行评估,而不仅仅是无法在源上进行评估。
ScriptDOM 修复了对 REJECT_SAMPLE_VALUE 的外部表支持。
ScriptDOM 修复了压缩选项无法应用于具有聚集索引的表的问题。
SQL 项目 修复了以下问题:错误地将 QueryStoreFlushInterval 的有效选项报告为无效。 开发者社区报告

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 空值
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

161.6374.0 SqlPackage

发布日期:2022 年 11 月 9 日

平台 下载 版本 构建
Windows .NET 6 zip 文件 161.6374.0 16.1.6374.0
Windows .msi 文件 161.6374.0 16.1.6374.0
macOS .NET 6 zip 文件 161.6374.0 16.1.6374.0
Linux .NET 6 zip 文件 161.6374.0 16.1.6374.0

重要

SqlPackage 版本 161 默认会加密数据库连接。 如果不更新 SqlPackage 参数,以前使用自签名证书或未加密的成功连接可能无法与 v161 连接。 有关详细信息,请参阅 https://aka.ms/dacfx-connection

功能

功能 详细信息
平台 将连接更改为使用加密,并且默认情况下不信任服务器证书。 对于使用自签名证书或默认不使用加密的连接,这是一项中断性变更。 有关详细信息,请参阅这篇专门介绍的文章
平台 引用了 Microsoft.Data.SqlClient v5.0.1
平台 SqlPackage 现在可作为 Windows、macOS 和 Linux 平台的 dotnet tool 进行安装
Always Encrypted 添加了对具有安全 enclave 的 VBS(基于虚拟化的安全)的支持。
连接 向 SqlPackage 操作添加了对 TDS 8.0 的支持以及 /SourceHostNameInCertificate/TargetHostNameInCertificate 的参数。
复制 添加了对具有对等复制的 sp_addpublication 的支持。
ScriptDOM 添加了对带有谓词子查询的 IS NOT DISTINCT FROM 语法的支持。
服务器级别角色 添加了对其他固定服务器角色的支持:MS_DatabaseConnector、MS_LoginManager、MS_DatabaseManager、MS_ServerStateManager、MS_ServerStateReader、MS_ServerPerformanceStateReader、MS_ServerSecurityStateReader、MS_DefinitionReader、MS_PerformanceDefinitionReader、MS_SecurityDefinitionReader。
SQL Server 2022 添加了对与 SQL Server 2022 关联的 T-SQL 函数更改的支持:GREATEST()、LEAST()、STRING_SPLIT()、DATETRUNC()、LTRIM()、RTRIM() 和 TRIM()。
SQL Server 2022 添加了对与 SQL Server 2022 关联的 JSON 函数更改的支持:ISJSON()、JSON_PATH_EXISTS()、JSON_OBJECT() 和 JSON_ARRAY()。
SQL Server 2022 添加了对与 SQL Server 2022 关联的位操作函数的支持:LEFT_SHIFT()、RIGHT_SHIFT()、BIT_COUNT()、GET_BIT() 和 SET_BIT()。
SQL Server 2022 添加了对与 SQL Server 2022 关联的时序函数更改的支持:DATE_BUCKET()、GENERATE_SERIES()、FIRST_VALUE() 和 LAST_VALUE()。
统计信息 添加了对 STATISTICS AUTO_DROP 选项的支持。
XML 压缩 添加了对 XML 索引的 XML 压缩的支持。

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 空值
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

19.2 SqlPackage

发布日期:2022 年 9 月 22 日

平台 下载 版本 构建
Windows .msi 文件 19.2 16.0.6296.0
macOS .NET 6 zip 文件 19.2 16.0.6296.0
Linux .NET 6 zip 文件 19.2 16.0.6296.0
Windows .NET 6 zip 文件 19.2 16.0.6296.0

功能

功能 详细信息
连接池 如果环境变量 CONNECTION_POOLING_ENABLED 设置为 True,则为所有连接启用连接池。 对于使用 Azure Active Directory 用户名/密码连接的操作,建议采用该设置以避免 Microsoft 身份验证库 (MSAL) 限制。
部署选项 显示 DacFx .NET API 中的部署选项的易记名称。
动态数据掩码 在导入/导出和提取/发布中添加对精细 UNMASK 权限的支持。
账本 在架构模型中添加用于验证和导出/提取的 SQL 账本历史记录表,不会将历史记录表导入或发布到数据库。
平台 SqlPackage 现已使用 .NET 6 生成
SQL Server 2022 添加对权限 ALTER LEDGER CONFIGURATION、VIEW PERFORMANCE DEFINITION、VIEW ANY PERFORMANCE DEFINITION 的支持。 详细了解权限文档中提供的权限定义。
XML 压缩 ScriptDOM、导入/导出和提取/发布中的 XML 压缩支持。 XML 数据文档中提供了有关 XML 数据和 XML 压缩的详细信息。

修复项

Feature 详细信息
导出 修复在表的统计数据包含计算列时会导出失败的问题
导入 修复导入停滞在 95% 的问题
ScriptDOM 修复 STRING_SPLIT 不支持 NULL 序号值的问题

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 空值
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。
XML 压缩 SqlPackage 尚不支持 XML 索引的 XML 压缩。 空值

19.1 SqlPackage

发布日期:2022 年 5 月 24 日

平台 下载 版本 构建
Windows .msi 文件 19.1 16.0.6161.0
macOS .NET Core zip 文件 19.1 16.0.6161.0
Linux .NET Core zip 文件 19.1 16.0.6161.0
Windows .NET Core zip 文件 19.1 16.0.6161.0

功能

功能 详细信息
Azure Synapse Analytics 添加了对本机外部数据源的支持。
提取 添加了对提取操作的 ExtractTarget 属性的支持。 提取现在支持提取到 .sql,后者作为每个对象的文件被组织到单个文件夹、对象类型、架构或对象类型和架构中。
ScriptDOM 添加了对 isn't DISTINCT FROM 语法的支持。

修复项

Feature 详细信息
Azure Synapse Analytics 修复了表名称更改的发布操作,其中表名称包括“/”字符。
导出 修复了包含依赖项的 SQL 账本历史记录表的导出。
提取 修复了在存储过程中使用函数的偏移子句的提取操作失败的问题。
提取 修复了账本表提取操作的警告。
常规 修复了命令超时设置未正确应用的问题。
导入 修复了导入时禁用全文索引的问题。
发布 修复了添加列时发布操作会删除和创建聚集列存储索引的问题。
发布 修复了当分区函数包含前导零时图形表无法部署的问题。
ScriptDOM 修复了未能解析括号中的 IIF 条件的问题。

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 不适用
部署 由于 Microsoft 身份验证库 (MSAL) 限制,使用 Azure Active Directory 用户/密码身份验证进行部署时,部署时间会增加。 有关 GitHub 的详细信息 使用替代身份验证方法,例如 Azure Active Directory服务主体
部署 当对具有安全 enclave 的 Always Encrypted 使用就地加密时,适用于 Windows、macOS 和 Linux 的 .NET Core 上的 SqlPackage 在发布操作期间失败,并显示错误消息“无法识别的配置部分 system.diagnostics”。 从 SqlPackage 文件夹中删除文件 sqlpackage.dll.config
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

19.0 SqlPackage

发布日期:2022 年 1 月 25 日

平台 下载 版本 构建
Windows .msi 文件 19.0 16.0.5400.1
macOS .NET Core zip 文件 19.0 16.0.5400.1
Linux .NET Core zip 文件 19.0 16.0.5400.1
Windows .NET Core zip 文件 19.0 16.0.5400.1

功能

功能 详细信息
Always Encrypted 添加了对 Always Encrypted 列的就地加密的支持。 现在,发布可以利用服务器端安全的 enclave 就地加密、解密和重新加密数据库列。 这可以节省将数据移动到数据库外部的费用。 有关就地加密的先决条件,请参阅使用具有安全 enclave 的 Always Encrypted 就地配置列加密。 注意:只有脱机方法才支持就地加密。
Azure Synapse Analytics 添加了对列级对称加密的支持。
账本 添加了对带有账本表的数据库的导出和导入的支持。 以下限制适用于导出:不迁移账本历史记录表和删除的账本表;不迁移账本系统视图中 GENERATED ALWAYS 列的值和数据;忽略数据库级账本属性的值。
平台 添加了对将 .NET 6 作为目标框架的支持
平台 引用 Microsoft.Data.SqlClient (3.0),而不是 .NET Framework 版本中的 System.Data.SqlClient。 对于 .NET Core 版本,将 Microsoft.Data.SqlClient 从 2.1.3 升级到 3.0。
平台 将 .NET Framework 目标版本升级到 .NET 4.6.2
ScriptDOM 添加了对 Sql160 分析器的支持。

修复项

Feature 详细信息
部署 修复了在存储过程中对列的表分布的解释问题。
部署 修复了发布操作期间“删除不在源中的对象”选项的问题。
部署 修复了使用具有敏感度分类的时态表部署 dacpac 的问题。
部署 修复了当 DoNotEvaluateSqlCmdVariables 设置为 true 时,仍会验证变量的 bug
提取 修复了根据 includeCompositeObjects 选择对引用的 dacpac 的日志进行重构的问题。
导入 修复了导入目标服务器中不支持的数据库范围配置的问题
SQL 项目 修复了以下问题:在应用于主键时增量统计信息导致项目生成出现问题。
SQL 项目 修复了使用文件表生成项目的问题。

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 不适用
部署 由于 Microsoft 身份验证库 (MSAL) 限制,使用 Azure Active Directory 用户/密码身份验证进行部署时,部署时间会增加。 有关 GitHub 的详细信息 使用替代身份验证方法,例如 Azure Active Directory服务主体
ScriptDOM 分析非常大的文件可能会导致堆栈溢出。

18.8 SqlPackage

发布日期:2021 年 10 月 4 日

平台 下载 版本 构建
Windows .msi 文件 18.8 15.0.5282.3
macOS .NET Core zip 文件 18.8 15.0.5282.3
Linux .NET Core zip 文件 18.8 15.0.5282.3
Windows .NET Core zip 文件 18.8 15.0.5282.3

功能

功能 详细信息
导出 添加选项 VerifyExtraction,以更改架构模型验证在导出时的行为
Azure SQL 支持账本数据库和表,包括导入和导出操作。
平台 对于 .NET Core 版本,将 Microsoft.Data.SqlClient 从 2.0.0 升级到 2.1.3
Azure Synapse Analytics 支持使用对称密钥进行列加密
Azure Synapse Analytics 支持使用 CREATE CERTIFICATE 进行列加密
Azure Synapse Analytics 对 MERGE 语句的支持
部署 AE 列的变量参数化,新发布属性 IsAlwaysEncryptedParameterizationEnabled
部署 支持 IgnoreWorkloadClassifiers 和 IgnoreDatabaseWorkloadGroups 发布属性
部署 支持外部语言运行时
ScriptDOM 支持账本数据库和表
ScriptDOM 支持内联索引定义中的 INCLUDE 列

修复项

Feature 详细信息
部署 修复了外部用户部署到 Azure SQL 托管实例失败的问题
部署 修复了涉及临时表的部署顺序,以在关闭系统版本控制之前删除依赖项
部署 修复了 Always Encrypted 部署 bug,错误消息显示“对象名称‘#tmpErrors’无效”
导出 验证 SqlPackage 参数 ExcludeObjectType(s) 和 DoNotDropObjectType(s)
导出 通过排除,修复了数据库中有变更数据捕获 (CDC) 对象时导出失败的问题
提取 当第一次由于争用条件而失败时,添加重试以提取验证
导入 通过将 MAXDOP 设置为 1,修复了在导入到 Azure 时偶尔出现死锁的问题
导入 修复了当临时表依赖于绑定了架构的安全策略时导入失败的问题
平台 DacFramework.msi 现在签署的是“Microsoft SQL Server Data-Tier Application Framework”而不是“SQL Server 2012”
平台 在 x64 SqlPackage 中默认为大型数组,修复了一些涉及大型数据库的场景
架构比较 修复了对等数据库与数据库范围的配置之间的架构比较失败的问题
架构比较 修复了架构与列存储索引的比较
SQL 项目 修复了生成错误为“GRANT EXECUTE ANY EXTERNAL SCRIPT”的 bug
SQL 项目 修复了具有列存储索引和 (n)varchar(max) 列的数据库项目生成成功但在部署时失败的 bug
SQL 项目 修复了存储过程中表分布列的未解析引用警告

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器) 不适用
部署 尚不支持 Azure SQL 账本表功能 N/A

18.7.1 SqlPackage

发布日期:2021 年 6 月 2 日

内部版本:15.0.5164.1

功能

功能 详细信息
审核 添加了对 EXTERNAL_MONITOR 的支持。
Azure Synapse Analytics 添加了对 PREDICT 的支持。
Logging 将 SqlPackage 版本和体系结构信息添加到诊断日志文件。

修复项

Feature 详细信息
导出 修复了在没有聚集索引的情况下,将表导出到第一列中包含文本或图像的表会失败的问题。
导出 修复了以下问题:在没有聚集索引的情况下,导出统计数据中列的顺序与表创建脚本的顺序不同的表将会失败。

18.7 SqlPackage

发布日期:2021 年 3 月 10 日

内部版本:15.0.5084.2

功能

功能 详细信息
部署 从 Azure 存储提取或向其中发布大数据。 有关详细信息,请参阅 SqlPackage for Big Data
Azure Synapse Analytics 行级别安全性支持(内联表值函数、安全策略、安全谓词)
Azure Synapse Analytics 工作负荷分类支持
Azure SQL Edge 外部流式处理作业支持
Azure SQL Edge 针对数据保留添加了表和数据库选项。
导入 针对导入操作添加了 2 个新索引选项属性。 DisableIndexesForDataPhase(在将数据导入 SQL Server 之前禁用索引,默认值为 true)和 RebuildIndexesOfflineForDataPhase(在将数据导入 SQL Server 之后脱机重新生成索引,默认值为 false)
Logging 添加了用于所有操作的属性 (HashObjectNamesInLogs),该属性会将日志消息中的所有对象名称转换为哈希字符串。
性能 改进了导入和导出性能,包括其他日志记录,以帮助确定更多瓶颈。
SQLCMD 添加了用于部署和架构比较的属性 (DoNotEvaluateSqlCmdVariables),该属性指定是否将 SQLCMD 变量替换为值。

修复项

Feature 详细信息
部署 Azure SQL 的默认 MAXDOP 从 0 更改为 8,同时更新 DacFx 中的架构模型默认值
架构比较 使用 OUT 和 OUTPUT 关键字的存储过程作为差异被忽略
部署 针对大数据令牌的其他验证
生成/部署 对临时外部表进行完整架构模型清理,以实现最终的 dacpac 一致性。
生成/部署 添加错误处理和修复非 Edge 150 RE。
导入/部署 部署期间还原序列值
部署 修复了更改聚集索引的压缩选项时导致重新创建表而不是 alter index 的问题。
部署 修复了在表列更改时删除并重新创建聚集列存储索引的问题。
部署 修复了在部署过程中删除和重新创建外部用户的问题。
架构比较 修复了外部流式处理作业的架构比较问题。
导入 启用环境设置 ReliableDdlEnabled 为部署报告编写脚本时引发空引用异常。
部署 修复了按错误顺序创建包含系统版本控制的部署步骤的问题。
部署 修复了由于目标包含时态表而导致架构比较更新或 dacpac 部署失败的问题。
部署 基于目标之前的最后一个值进行部署后,重新设定标识种子值。

已知问题

功能 详细信息 解决方法
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器) 不适用
部署 在增量部署方案中,当用户删除临时表时,如果删除依赖于它的对象(如函数、存储过程等),部署可能会失败。 脚本生成顺序尝试关闭表的 SYSTEM_VERSIONING,虽然这是删除表的先决条件,但生成步骤的顺序不正确。 工作项 生成部署脚本,将 System_Versioning OFF 步骤移到刚好在要删除的表之前,然后运行该脚本。

18.6 SqlPackage

发布日期:2020 年 9 月 18 日

内部版本:15.0.4897.1

功能

功能 详细信息
平台 已将 SqlPackage .NET Core 版本更新为 .NET Core 3.1
Always Encrypted 添加了对 SQL Server 2019 的安全 enclave 导入和导出的支持
部署 添加了支持,以在从 Azure SQL 数据库导出时忽略已启用变更数据捕获的表
部署 添加了对 Azure SQL 数据库中 OPTIMIZE_FOR_SEQUENTIAL_KEY 索引选项的支持
部署 添加了对 Azure Synapse Analytics 的标识列的支持
帮助 在帮助 (/?) 中输出 SqlPackage 版本,并支持 /version 参数

修复项

Feature 详细信息
部署 修复了以非 sysadmin 用户身份将 Azure SQL 托管实例作为目标时生成的错误部署脚本
部署 修复了在运行脚本操作时加载部署的问题
帮助 当运行时间超过 1 天时,输出 SqlPackage 中的正确运行时间
部署 修复了在 .NET Core 中部署时的 dacpac 注册问题
部署 修复了在 .NET Core 中处理 accessToken (at) 参数时的 SqlPackage 问题
部署 允许将存储过程中的 ALTER TABLE 语句作为非顶级语句
部署 修复了在具体化视图中验证 Azure Synapse Analytics 时不区分大小写的问题

已知问题

功能 详细信息
部署 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)

18.5.1 SqlPackage

发布日期:2020 年 6 月 24 日

内部版本:15.0.4826.1

修复项

Feature 详细信息
部署 修复了 18.5 中引入的回归,在将 dacpac(具有使用外部登录名的用户)导入或部署到本地时出现“"type" 附近的语法不正确”错误

18.5 SqlPackage

发布日期:2020 年 4 月 28 日

内部版本:15.0.4769.1

功能

功能 详细信息
部署 现在 SQL Server 2008 及更高版本、Azure SQL 数据库和 Azure Synapse Analytics 支持数据敏感度分类
部署 针对表约束添加 Azure Synapse Analytics 支持
部署 为有序聚集列存储索引添加 Azure Synapse Analytics 支持
部署 为外部数据源(Oracle、Teradata、MongoDB/CosmosDB、ODBC、大数据群集)和外部表(适用于 SQL Server 2019 大数据群集)添加支持
部署 添加 SQL Database Edge 实例作为支持的版本
部署 支持格式为“<server>.<dnszone>.database.windows.net”的 Azure SQL 托管实例服务器名称
部署 在 Azure Synapse Analytics 中添加对复制命令的支持
部署 在发布过程中添加部署选项“IgnoreTablePartitionOptions”,以便在 Azure Synapse Analytics 的分区功能发生更改时避免重新创建表
.NET Core 在 SqlPackage 的 .NET Core 版本中添加对 Microsoft.Data.SqlClient 的支持

修复项

Fix 详细信息
部署 修复将 json 路径分析为表达式的问题
部署 修复为 AlterAnyDatabaseScopedConfiguration 和 AlterAnySensitivityClassification 权限生成 GRANT 语句的问题
部署 修复无法识别外部脚本权限的问题
部署 修复内联属性 - 属性的隐式添加不应显示差别,但显式提及应通过脚本显示
部署 解决了以下问题:更改具体化视图 (MV) 引用的表导致生成 Alter View 语句。 对于 Azure Synapse Analytics,MV 不支持 Alter View 语句。
部署 修复在将列添加到包含 Azure Synapse Analytics 数据的表时发布失败的问题
部署 修复在为 Azure Synapse Analytics 更改分布列类型(数据丢失方案)时更新脚本应将数据移动到新表的问题
ScriptDom 修复无法识别在内联索引之后定义的内联约束的 ScriptDom bug
ScriptDom 修复 ScriptDom SYSTEM_TIME 在批处理语句中缺少右括号的问题
Always Encrypted 修复 #tmpErrors 表在 SqlPackage 重新连接并且临时表已消失时无法删除(因为临时表会在连接终止时消失)的问题

已知问题

功能 详细信息
部署 18.5 中引入了一个回归,在将 dacpac(具有使用外部登录名的用户)导入或部署到本地时出现“"type" 附近的语法不正确”错误。 使用 sqlpackag 18.4 可暂时避开此问题,将在下一个 sqlpackag 版本中进行修复。
.NET Core 由于 Microsoft.Data.SqlClient 中的这个已知问题,导入具有敏感度分类的 bacpacs 失败,并显示“重大内部连接错误”消息。 此问题将在下一个 SqlPackage 版本中修复。

18.4.1 SqlPackage

发布日期:2019 年 12 月 13 日

内部版本:15.0.4630.1

修复项

Fix 详细信息
ScriptDom ScriptDom 分析回归在 18.3.1 中引入,其中“重命名”被错误地视为顶级令牌,导致分析失败。

已知问题

功能 详细信息
部署 18.4.1 中引入了一个回归,在使用外部登录的用户部署 dacpac 或导入 bacpac 时出现“对象引用未设置为对象的实例”错误。 使用 SqlPackage 18.4 可暂时避开此问题,将在下一个 SqlPackage 版本中进行修复。

18.4 SqlPackage

发布日期:2019 年 10 月 29 日

内部版本:15.0.4573.2

功能

功能 详细信息
部署 添加了对部署到 Azure Synapse Analytics 的支持。
平台 SqlPackage .NET Core 一般可用于 macOS、Linux 和 Windows。
安全性 删除 SHA1 代码签名。
部署 添加对新 Azure 数据库版本的支持:GeneralPurpose、BusinessCritical、超大规模
部署 添加了对 Azure Active Directory 用户和组的 Azure SQL 托管实例支持。
部署 支持 .NET Core 上的 SqlPackage 的 /AccessToken 参数。

已知问题

功能 详细信息
ScriptDom ScriptDom 分析回归在 18.3.1 中引入,其中“重命名”被错误地视为顶级令牌,导致分析失败。 此问题将在下一个 SqlPackage 版本中修复。

.NET Core 的已知问题

Feature 详细信息
导入 对于压缩文件大小超过 4 GB 的 .bacpac 文件,你可能需要使用 SqlPackage 的 .NET Core 版本来执行导入。 此行为由 .NET Core 生成 zip 标头文件的方式导致,虽然 zip 标头文件是有效的,但无法由 SqlPackage 的 .NET Full Framework 版本读取。
部署 不支持参数 /p:Storage=File。 .NET Core 仅支持 Memory。
Always Encrypted SqlPackage .NET Core 不支持 Always Encrypted 列。
安全性 SqlPackage .NET Core 不支持用于多重身份验证的 /ua 参数。
部署 不支持使用 json 数据序列化的较旧 V2 dacpac 和 bacpac 文件。

18.3.1 SqlPackage

发布日期:2019 年 9 月 13 日

内部版本:15.0.4538.1

功能

功能 详细信息
部署 添加对部署到 Azure Synapse Analytics(预览版)的支持。
部署 将 /p:DatabaseLockTimeout=(INT32 '60') 参数添加到 SqlPackage。
部署 将 /p:LongRunningCommandTimeout=(INT32) 参数添加到 SqlPackage。
导出/提取 将 /p:TempDirectoryForTableData=(STRING) 参数添加到 SqlPackage。
部署 允许从其他位置加载部署参与者。 将从以下位置加载部署参与者:与部署目标 .dacpac 相同的目录、与 SqlPackage 二进制文件相对应的扩展目录,以及添加到 SqlPackage 的 /p:AdditionalDeploymentContributorPaths=(STRING) 参数(可在其中指定其他目录位置)。
部署 添加对 OPTIMIZE_FOR_SEQUENTIAL_KEY 的支持。

修复项

Fix 详细信息
部署 修复了忽略自动索引使其不会在部署时被删除的问题。
Always Encrypted 修复了处理 Always Encrypted varchar 列的问题。
生成/部署 修复了解析 xml 列集的 nodes() 方法的问题。
ScriptDom 修复了“URL”字符串被解释为顶级令牌的其他情况。
图形 修复了约束中伪列引用的生成 SQL 的问题。
导出 生成满足复杂性要求的随机密码。
部署 修复了在检索约束时遵循命令超时的问题。
.NET Core(预览版) 修复了诊断日志记录到文件的问题。
.NET Core(预览版) 使用流式传输来导出表数据,以支持大型表。

18.2 SqlPackage

发布日期:2019 年 4 月 15 日

内部版本:15.0.4384.2

功能

功能 详细信息
图形 添加了对边缘约束和边缘约束子句的图形表支持。
部署 启用了模型验证规则以支持 SQL Server 2016 及更高版本的索引键的 32 个列。

修复项

Fix 详细信息
部署 由于使用的查询提示不受支持,因此修复了对 SQL Server 2016 RTM 数据库进行的反向工程。
部署 修复了 create filegroup 语句之前出现的 auto close alter 语句的部署顺序。
ScriptDom 修复了 ScriptDom 分析回归,其中“URL”字符串被解释为顶级令牌。
部署 修复了分析 alter table add index 语句时出现的空引用异常。
架构比较 修复了始终显示为不同的可为空的持久化计算列的架构比较。

18.1 SqlPackage

发布日期:2019 年 2 月 1 日

内部版本:15.0.4316.1

预览版。

功能

功能 详细信息
部署 添加了对 UTF8 排序规则的支持。
部署 对索引视图启用了非聚集列存储索引。
平台 已移动到 .NET Core 2.2。
架构比较 将内存支持的存储用于在 .NET Core 上进行架构比较。

修复项

Fix 详细信息
性能 修复了性能以使用旧版基数估计器进行反向工程查询。
性能 修复了生成脚本时出现的重大架构比较性能问题。
架构比较 修复了架构偏差检测逻辑以忽略特定扩展事件 (xevent) 会话。
图形 修复了图形表的导入顺序。
导出 修复了导出具有对象权限的外部表的问题。

已知问题

此版本包括面向 .NET Core 2.2 的 SqlPackage 跨平台预览版。 SqlPackage 可以在 macOS 和 Linux 上运行。

已知问题 详细信息
部署 对于 .NET Core,不支持生成和部署参与者。
部署 对于 .NET Core,不支持使用 json 数据序列化的较旧 dacpac 和 bacpac 文件。
部署 对于 .NET Core,由于区分大小写的文件系统出现问题,因此可能无法解析引用的 dacpacs(例如 master.dacpac)。 一种解决方法是大写引用文件的名称(例如 MASTER.BACPAC)。

18.0 SqlPackage

发布日期:2018 年 10 月 24 日

内部版本:15.0.4200.1

功能

功能 详细信息
部署 添加了对数据库兼容级别 150 的支持。
部署 添加了对 Azure SQL 托管实例的支持。
性能 添加了 MaxParallelism 命令行参数以指定数据库操作的并行度。
安全性 添加了 AccessToken 命令行参数以在连接到 SQL Server 时指定身份验证令牌。
导入 添加了对流式传输 BLOB/CLOB 数据类型以进行导入的支持。
部署 添加了对标量 UDF“INLINE”选项的支持。
图形 添加了对图形表“MERGE”语法的支持。

修复项

Fix 详细信息
图形 修复了图形表的未解析伪列。
部署 修复了使用内存优化表时创建具有内存优化文件组的数据库的问题。
部署 修复了将扩展属性包括在外部表中的问题。

17.8 SqlPackage

发布日期:2018 年 6 月 22 日

内部版本:14.0.4079.2

功能

功能 详细信息
诊断 改进了连接失败的错误消息,包括 SqlClient 异常消息。
部署 支持对单分区索引进行索引压缩以便导入/导出。

修复项

Fix 详细信息
部署 修复了 SQL 2017 及更高版本的 XML 列集的反向工程问题。
部署 修复了对 Azure SQL 数据库忽略数据库兼容性级别 140 脚本编写的问题。

17.4.1 SqlPackage

发布日期:2018 年 1 月 25 日

内部版本:14.0.3917.1

功能

功能 详细信息
导入/导出 添加了 ThreadMaxStackSize 命令行参数以分析具有大量嵌套语句的 Transact-SQL。
部署 数据库目录排序规则支持。

修复项

Fix 详细信息
导入 将 Azure SQL 数据库 bacpac 导入到本地实例时,修复了由于“此版本的 SQL Server 不支持没有密码的数据库主密钥”而出现的错误。
图形 修复了图形表的未解析伪列错误。
架构比较 修复了用于比较架构的 SQL 身份验证问题。

17.4.0 SqlPackage

发布日期:2017 年 12 月 12 日

内部版本:14.0.3881.1

功能

功能 详细信息
部署 添加了对 SQL 2017+ 和 Azure SQL 数据库上的时态保留策略 的支持。
诊断 添加了 /DiagnosticsFile:"C:\Temp\SqlPackage.log" 命令行参数以指定用于保存诊断信息的文件路径。
诊断 添加了 /Diagnostics 命令行参数以将诊断信息记录到控制台。

修复项

Fix 详细信息
部署 遇到无法识别的数据库兼容性级别时不会进行阻止。 相反,会假定最新的 Azure SQL 数据库或本地平台。