下载最新版本
本文列出了 SqlPackage 的已发布版本提供的功能和修补程序。
170.2.70 SqlPackage
              发布日期: 2025 年 10 月 14 日
dotnet tool install -g microsoft.sqlpackage --version 170.2.70
Features
| Feature | Details | 
| 外部模型 | 添加了对 Azure SQL 数据库和 SQL Server 2025 中的外部模型的支持,用于导入、导出、提取、部署和 SQL 项目生成。 | 
| 外部模型 | 添加对函数 AI_GENERATE_CHUNKS和AI_GENERATE_EMBEDDINGS的支持。 | 
| JSON | 添加了对 Azure SQL 数据库和 SQL Server 2025 中的 JSON 索引的支持,用于导入、导出、提取、部署和 SQL 项目生成。 | 
| JSON | 添加对 JSON 函数 JSON_ARRAYAGG、JSON_OBJECTAGG和JSON_QUERY的支持。 | 
| Platform | SqlPackage .zip 生成 .NET SDK 更新为 8.0.414 | 
| 正则表达式 | 添加对 REGEXP_LIKE函数的支持。 | 
| ScriptDom | 已将 ScriptDom 更新为版本 170.128.0。 | 
| Vector | 添加了对 Azure SQL 数据库和 SQL Server 2025 中的矢量索引的支持,以便导入、导出、提取、部署和 SQL 项目生成。 | 
| Vector | 将向量数据类型的支持扩展到 SQL Server 2025 并指定 32 位浮点大小。 | 
| Vector | 添加对 Vector 函数 VECTOR_SEARCH的支持。 | 
Fixes
| Feature | Details | 
| 数据掩码 | 修复了在项目生成期间无法识别日期/时间数据掩码函数的问题。 
              GitHub 问题 | 
| 外部模型 | 修复了一个问题:外部模型依赖于数据库范围的凭据,这会导致项目构建失败。 | 
| JSON | 修复了将 JSON 索引与默认 JSON 路径进行比较时的 bug。 | 
| Platform | 引用 Microsoft.Data.SqlClient v5.1.7。 | 
| XML | 修复了在模型比较期间 XML 查询路径(xQuery)未被视为区分大小写的问题。 即使在不区分大小写的数据库上,xQuery 路径也区分大小写。 
              GitHub 问题 | 
170.1.61 SqlPackage
              发布日期: 2025 年 7 月 30 日
dotnet tool install -g microsoft.sqlpackage --version 170.1.61
Features
| Feature | Details | 
| 数据虚拟化 | 添加了对导入、导出、提取和发布作中与 Azure SQL 数据库 数据虚拟化 相关的对象的支持。 | 
| 数据虚拟化 | 使用 parquet 文件预览将 Azure SQL 数据库添加到发布,使 Azure Blob 存储和 parquet 文件能够将数据导入数据库。 将数据提取到 parquet 文件不适用于 Azure SQL 数据库,因为它依赖于 Azure SQL 数据库中 CREATE EXTERNAL TABLE AS SELECT不可用的功能。 | 
| Deployment | 添加对发布属性 /p:IgnorePreDeployScript和/p:IgnorePostDeployScript. 这些属性默认值为false,启用这些属性会导致部署计划省略相应的脚本。 
              GitHub 问题 | 
| Permissions | 添加了对 Azure SQL 数据库和 Fabric 中 SQL 数据库的权限 ALTER ANY EXTERNAL MIRROR的支持。 导出包含一个或多个 镜像表的数据库需要此权限。 
              GitHub 问题 | 
| Permissions | 添加对 SQL Server 2025 的权限 CREATE ANY EXTERNAL MODEL和ALTER ANY EXTERNAL MODEL的支持。 | 
| Permissions | 添加对 SQL Server 2025 和 Azure SQL 数据库权限 ALTER ANY INFORMATION PROTECTION的支持。 | 
| Platform | SqlPackage .zip 生成 .NET SDK 更新为 8.0.412 | 
| ScriptDom | 已将 ScriptDom 更新为版本 170.0.64。 | 
| ScriptDom | 更新 Fabric 平台中的数据仓库,以在 ScriptDom 中利用 TSqlFabricDWParser。 | 
Fixes
| Feature | Details | 
| 始终加密 (Always Encrypted) | 修复了 Interactive选项在发布参数/AzureKeyVaultAuthMethod中无法正常工作的问题。 | 
| Deployment | 修复了在部署中未正确设置 DbScopedConfigMaxDOPSecondary属性的问题。 
              GitHub 问题 | 
| Deployment | 修复了发布包含外键约束的表时出现的问题,该问题是由于 Microsoft Fabric 中的数据仓库不支持某些语法而导致失败。 | 
| Deployment | 修复了在 Fabric 中部署到 SQL 数据库时包含服务器对象的一个问题。 Fabric 中的 SQL 数据库中不支持服务器对象。 
              GitHub 问题 | 
| Deployment | 修复了聚集列存储索引在创建时先创建聚集索引的问题,该错误导致部署需要额外的开销和时间。 
              GitHub 问题 | 
| Extract | 修复了从 Fabric 中的 SQL 数据库提取数据库会导致用户定义脚本不可用的问题。 
              GitHub 问题 | 
170.0.94 SqlPackage
              发布日期: 4月 15, 2025
dotnet tool install -g microsoft.sqlpackage --version 170.0.94
Features
| Feature | Details | 
| DacpacVerify | 预览工具 .dacpac中添加了对验证两个文件内容的支持。 | 
| Extract | 添加了对 .dacpac将文件解压缩到文件夹的支持。 该/Action:Extract命令与/SourceFile:和/TargetFile:参数一起使用。 目标文件必须是一个文件夹,并且当指定源文件 ().dacpac时,任何数据库连接属性都无效。 从/p:ExtractTarget=SchemaObjectType文件而不是源数据库中提取时,需要该属性.dacpac。 可执行 Dacunpack.exe 将从 DacFx.msi 安装程序中删除。 | 
| Parquet | 在 Azure Blob 存储中将 Parquet 文件与 SqlPackage 提取和发布作结合使用时,添加了对数据类型 timestamp、rowversion、uniqueidentifier、text、ntext、image、json、xml 和 vector 的支持。 | 
| Parquet | 当表包含不受支持的数据类型时,添加了对将表数据导出和导入到 bcp 文件的支持,同时通过 SqlPackage 提取和发布作将 Azure Blob 存储中的 Parquet 文件用于剩余数据。 一个示例数据类型是 SQL_VARIANT,包含该类型列的表将写入 bcp, .dacpac而其余表将写入 Azure Blob 存储中的 Parquet 文件。 | 
| Platform | 将 .NET Framework 的 SqlPackage 版本更新为 .NET Framework 4.7.2。 | 
| Platform | 删除了对 .NET 6 的支持。 | 
| ScriptDom | 将 ScriptDom 更新到版本 170.18.0。 | 
| SQL 项目 | Azure SQL 数据库和 Fabric 中 SQL 数据库的默认兼容性级别现在设置为 170。 有关详细信息,请参阅 Azure SQL 数据库中的数据库兼容性级别 170 和 Microsoft Fabric 中的 SQL 数据库。 | 
| Vector | 目标平台 Azure SQL Database现在支持矢量数据类型进行导入、导出、提取、部署和 SQL 项目构建。 | 
Fixes
| Feature | Details | 
| Deployment | 修复了以下问题:如果修改后的表不包含 REJECT_VALUE 或 REJECT_SAMPLE_VALUE 的值,则将更改部署到外部表会导致删除并重新创建所有外部表。 | 
| Deployment | 修复了以下问题:如果指定了列的排序规则并与数据库默认排序规则匹配,则更改列以扩展其长度会导致不正确的数据丢失警告。 
              GitHub | 
| Deployment | 修复了表的敏感度分类更改会导致重新创建索引的问题。 
              GitHub | 
| Export | 优化了导出作期间表大小估计的使用。 | 
| Extract | 修复了使用数据库引用提取 失败 .dacpac的问题。 
              GitHub | 
| Fabric 数据仓库 | 修复了在发布作期间调用 sp_refreshsqlmodule 系统存储过程的问题。 Fabric Data Warehouse 不支持 sp_refreshsqlmodule,这会导致部署失败。 | 
| Fabric 数据仓库 | 修复了从 Fabric Data Warehouse 中提取数据库时,表约束将包含在文件中但不 .dacpac包含在.sql文件中的问题。 
              GitHub | 
| SQL 项目 | 修复了在 Visual Studio 中未安装 SSDT 的情况下进行生成导致生成行为不正确的问题。 
              GitHub | 
| SQL 项目 | 修复了启用代码分析时输出中生成警告重复的问题。 
              GitHub | 
| SQL 项目 | 修复了将 Service Broker 参数设置为 variables 导致错误警告的问题。 
              GitHub | 
162.5.57 SqlPackage
发布日期:2024 年 11 月 21 日
dotnet tool install -g microsoft.sqlpackage --version 162.5.57
Features
| Feature | Details | 
| Dacpacs | Synapse 无服务器和 Azure SQL 数据库的系统 dacpac 更新。 | 
| Diagnostics | 添加了新的命令行参数以指定日志记录级别。 /DiagnosticsLevel: | 
| Diagnostics | 添加了新的命令行参数以输出 .zip诊断包,其中包含目标和源模型信息以及诊断日志记录、部署脚本和部署报表。/DiagnosticPackageFile: | 
| Fabric 数据仓库 | 新增了对 Fabric 数据仓库数据库的发布支持,其中需要 table alter 语句。 | 
| Fabric 中的 SQL 数据库 | 在目标平台中新增了对Fabric中的SQL数据库的支持。 | 
Fixes
| Feature | Details | 
| Deployment | 修复了以下问题:如果有一个存储过程或函数引用系统版本控制型内存优化表,并且数据库因由 DBCC CLONEDATABASE 创建而缺少系统版本控制型内存优化表,则部署将失败。 
              GitHub | 
| Deployment | 修复了一个问题:将角色成员身份更改部署到 Synapse 无服务器时失败。 | 
| Deployment | 修复了以下问题:如果未设置主密钥上的密码,则使用主密钥的部署将失败。 
              DevCom | 
| Import | 修复了以下问题:nvarchar(max)、varchar(max) 和 varbinary(max) 类型的群集列存储索引无法导入。 
              GitHub | 
| Import | 修复了以下问题:带 DDL 触发器的数据库导入失败,原因是触发器在数据导入完成之前就被启用了。 | 
162.4.92 SqlPackage
              发布日期:2024 年 9 月 18 日
dotnet tool install -g microsoft.sqlpackage --version 162.4.92
Features
| Feature | Details | 
| Deployment | Azure SQL 数据库中新数据库的默认兼容性级别现在设置为 160。 
              博客帖子 | 
| JSON | 目标平台 Azure SQL Database现在支持使用 JSON 数据类型进行导入、导出、提取、部署和 SQL 项目构建。 | 
Fixes
| Feature | Details | 
| Deployment | 修复了以下问题:使用位转换函数的分区函数在部署期间导致表重新生成。 
              GitHub 问题 | 
| Deployment | 修复了以下问题:将更改部署到外部表导致删除和重新创建所有外部表。 
              GitHub 问题 | 
| Deployment | 修复了以下问题:system_time 列的列名中带有空的时态表将产生无效的部署脚本。 
              开发人员社区 | 
| Deployment | 修复了一个问题:在与表上的类型强制转换兼容的类型之间更改列类型导致部署期间不必要的表重新生成。 
              GitHub 问题 | 
| Deployment | 修复了以下问题:无论 SQL 项目的设置如何,为 Azure SQL 数据库生成的部署脚本都会包含一个被忽略的语句,用来关闭查询存储。 | 
| Export | 修复了以下问题:bacpac 导出在序列化期间失败,但跟踪日志不包含失败消息。 
              GitHub 问题 | 
| Extract | 修复了以下问题:在将表定义写入 .sql文件时,提取操作将对表上的索引重新排序。 | 
| JSON | 修复了以下问题:isjson 函数的 json_type_constraint参数未识别为第二个参数。 
              GitHub 问题 | 
| Platform | 引用了 Microsoft.Data.SqlClient v5.1.6。 | 
| 架构比较 | 修复了以下问题:架构比较期望所有语句在同一批次中,从而导致出现重复的语句。 
              GitHub 问题 | 
| ScriptDOM | 引用 ScriptDOM 16.1.9142 | 
162.3.566 SqlPackage
              发布日期:2024 年 6 月 24 日
dotnet tool install -g microsoft.sqlpackage --version 162.3.566
Fixes
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Import | 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 | 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
162.3.563 SqlPackage
              发布日期:2024 年 6 月 6 日
dotnet tool install -g microsoft.sqlpackage --version 162.3.563
Features
Fixes
| Feature | Details | 
| 代码分析 | 修复了以下问题:代码分析规则中的生成输出格式与 MSBuild 诊断格式准则不一致。 
              GitHub 问题 | 
| Deployment | 修复了一个问题:使用 ONLINE 属性集和大型对象类型 (LOB) 部署索引会失败。 | 
| Deployment | 修复了一个问题:对时态表部署列加密失败。 
              GitHub 问题 | 
| Deployment | 撤销所做的更改,以避免由于新行为中的后向兼容性问题而在项目生成后存储引用的 dacpac 的绝对路径。 
              GitHub 问题 | 
| Extract | 修复了一个问题:多列分布 (MCD) 表中使用的列被错误地设置为允许 NULL值。 | 
| ScriptDOM | 修复了以下问题:从表值函数 *中选择未指定 (OPEN_JSON) 列会导致 SQL 项目无法生成。 
              GitHub 问题 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Deployment | 部署参与者 API DeploymentPlanModifier 方法设置为静态方法。 | 已在 SqlPackage 162.3.566 中修复。 | 
| Import | 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 | 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
162.2.111 SqlPackage
              发布日期:2024 年 2 月 27 日
dotnet tool install -g microsoft.sqlpackage --version 162.2.111
Features
| Feature | Details | 
| Platform | 引用了 Microsoft.Data.SqlClient v5.1.4。 | 
| Platform | SqlPackage 自包含 (.zip) 下载现使用 .NET 8 生成。 | 
| Platform | SqlPackage dotnet tool现可用于 .NET 6 和 .NET 8。 
              GitHub 问题 | 
| Platform | SqlPackage 预览版现可在 dotnet tool源中使用。 | 
| Azure Synapse Analytics | 向 DW_COMPATIBILITY_LEVEL项目属性添加了验证,以确保该值在项目生成期间的有效选项 0、10、20、30、40、50、9000 内。 | 
| Deployment | 添加对 ONLINE索引操作的支持。 联机索引操作可作为 SqlPackage 命令行发布属性/p:PerformIndexOperationsOnline应用,也可作为 SQL 项目模型中的组件应用。 
              GitHub 问题 | 
| Parquet | 改进了针对 Parquet 文件中的数据的提取和发布操作,包括通过并行导入数据和减小日志文件大小来提高性能。 | 
Fixes
| Feature | Details | 
| Deployment | 修复了一个问题:在视图的 apply 子句中使用了函数的包将无法部署。 之前的错误信息是找不到函数,因为在该函数之前错误地部署了视图。 
              GitHub 问题 | 
| Deployment | 修复了无法正确识别 NATIVE_COMPILATION、SCHEMABINDING等函数关键字并将其包含在部署脚本中的问题。 
              GitHub 问题,开发者社区 | 
| Deployment | 修复了一个问题:values 子句中对系统表的引用将无法生成,并显示一条错误消息,指示“值”不能为 null。 
              开发人员社区 | 
| Deployment | 修复了一个问题:项目生成后,引用的 dacpac 的绝对路径(而不是相对路径)存储在 dacpac 中。 
              GitHub 问题 | 
| Deployment | 修正了一个问题,即如果要创建另一个禁用的索引,创建禁用的聚集索引会导致部署失败。 
              GitHub 问题 | 
| Deployment | 修复了一个问题:用户定义的数据类型的同义词导致未解析的引用。 
              GitHub 问题 | 
| Extract | 修复了为包指定的版本未遵循 major.minor.build格式时,无法设置 DacVersion 属性的问题。 
              GitHub 问题 | 
| Import | 修复了某些排序规则(包括 Chinese_PRC_CI_AS)无法导入,并显示排序规则不受支持的错误消息的问题。 
              GitHub 问题 | 
| 架构比较 | 修复了采用 UTF8排序规则的数据库无法给出正确结果的问题。 | 
| 架构比较 | 修复了评估 Synapse 无服务器 SQL 池时,架构比较不包括外部数据源、外部文件格式和外部表对象的问题。 | 
| 安全性 | 修复了 .NET 上的 SqlPackage 对通用身份验证 ( /ua) 的支持,支持采用多重身份验证 (MFA) 的 Microsoft Entra ID 身份验证。 | 
| 系统 dacpacs | 修复了 Synapse Data Warehouse master.dacpac 中不包括 pdw* 视图的问题。 
              GitHub 问题,开发者社区 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Import | 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 | 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
162.1.172 SqlPackage
              发布日期:2024 年 1 月 9 日
dotnet tool install -g microsoft.sqlpackage --version 162.1.172
Fixes
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Import | 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 | 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
162.1.167 SqlPackage
发布日期:2023 年 10 月 19 日
Features
| Feature | Details | 
| Platform | 引用了 Microsoft.Data.SqlClient v5.1.1。 | 
| Azure Synapse Analytics | 在 Azure Synapse Analytics 无服务器 SQL 池 PARSER_VERSION中添加了对FORMAT_OPTIONS的支持。 
              Documentation | 
| Azure Synapse Analytics | 在 Azure Synapse Analytics 专用 SQL 池的 CREATE VIEW中添加了对多列分布 (MCD) 的支持。 
              GitHub 问题 | 
| Azure Synapse Analytics | 向 Parquet 文件添加了对提取操作的 /p:TableData 属性的支持,使能够指定要导出数据的表。 
              GitHub 问题 | 
| Fabric 数据仓库 | 添加了对 Fabric Data Warehouse 数据库的提取和发布的支持。 发布功能不支持需要更改现有表的更改。 目标平台枚举值是 SQL 数据库项目中的 SqlDwUnifiedDatabaseSchemaProvider。 | 
| Parquet | 使用 Azure SQL 托管实例和 SQL Server 2022,在 Azure Blob 存储中添加对存储在 Parquet 文件中的数据进行提取和发布的预览支持。 不支持 Azure SQL 数据库和 SQL Server 2019 及更早版本。 数据必须是 CETAS 支持的数据类型。 在很多情况下,使用 Parquet 文件进行提取和发布可改进 bacpac 文件的导入/导出性能。 | 
| Publish | 为发布操作添加 /p:AllowTableRecreation属性。 默认值 (true) 与以前的行为一致,其中表更改可能需要在保留表数据时重新创建表,但部署可能需要花费大量时间,或者更改跟踪数据可能会丢失。 如果有表需要重新创建,将属性/p:AllowTableRecreation设置为 false 会导致部署不启动。 
              GitHub 问题 | 
Fixes
| Feature | Details | 
| Application | 修复了重定向输出时 SqlPackage CLI 会引发异常的问题。 
              GitHub 问题 | 
| Azure Synapse Analytics | 修复了发布操作无法分析包含 filepath()或filename()函数的语句的问题。 | 
| Import | 将 bacpac 导入不支持 AUTO_DROP 的 SQL Server 版本时,AUTO_DROP 选项会从统计信息中排除。 | 
| Import | 修复了一个问题:包含 ALTER 或 CREATE 可用性组的数据库导入将无法导入。 | 
| Export | 修复了在 bacpac 导出中包含已删除的账本列的问题,该问题会在导入时导致出现错误消息。 | 
| Export | 修复了一个问题:导出到 bacpac 文件时,不遵循 /p:CompressionOption。 | 
| Extract | 修复了一个问题,即对于非 dacpac 选项的 /p:ExtractTarget 选项,仍然要求目标文件具有 .dacpac 扩展名。 
              GitHub 问题 | 
| Ledger | 修复了由于尝试为已删除的表创建权限,导入或发布包含已删除账本表的数据库失败的问题。 | 
| Ledger | 修复了导入包含已删除账本表的数据库时,由于尝试将数据导入已删除的表而导致失败的问题。 | 
| Polybase | 修复了无法导出或提取具有 RDBMS 外部表的 Azure SQL 托管实例数据库的问题。 
              GitHub 问题 | 
| Publish | 如果对象是权限或角色成员身份,DropObjectsNotInSource 不会删除此类对象。 使用 DropPermissionsNotInSource 或 DropRoleMembersNotInSource 以启用删除权限或角色成员身份。 
              GitHub 问题 | 
| Publish | 在用户连接无法访问 Azure SQL 数据库中的 master时,修复了导致发布操作失败的问题。 | 
| Publish | 修复了一个问题:包含与列加密的交互的部署会遇到间歇性执行超时错误。 | 
| Publish | 修复了如果 RegisterDataTierApplication 设置为 true,则部署使用 .NET/.NET Core 生成的 dacpac 将失败的问题。 
              GitHub 问题 | 
| Publish | 修复了修改系统版本化表并创建新架构导致部署失败的问题。 
              GitHub 问题 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Import | 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 | 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
162.0.52 SqlPackage
发布日期:2023 年 5 月 11 日
| Platform | Download | Version | 
| 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 | 
Features
Fixes
| Feature | Details | 
| Azure Synapse Analytics | 修复了连接到 Azure Synapse Analytics 无服务器 SQL 池时未正确设置默认命令超时的问题。 | 
| Azure Synapse Analytics | 修复了 Azure Synapse Analytics 无服务器 SQL 池错误地确定默认数据和日志路径的问题。 | 
| Azure Synapse Analytics | 修复了 Azure Synapse Analytics 无服务器 SQL 池错误地确定默认登录名、用户和架构的问题。 | 
| Azure SQL 数据库 | 修复了无法正确识别“时态历史保留”配置为空(null)的问题。 | 
| Deployment | 修复了一个问题:部署计划无法检测到 FROM VALUES 子句的子查询中与表/视图的依赖关系。 
              GitHub 问题 | 
| Deployment | 修复了目标数据库中包含与列绑定的规则时导致部署失败的问题。 | 
| Deployment | 修复了当目标数据库包含使用用户定义的类型绑定到列的规则时部署失败的问题。 
              GitHub 问题 | 
| Deployment | 修复了在对表进行其他更改时,时间序列表上的保留期限会被重置为默认值的问题。 
              GitHub 问题 | 
| Deployment | 修复了一个问题,即当表指定了压缩选项时,对主键的更新未被包括在部署中。 | 
| Deployment | 修复了即使未对分区表进行更改时,仍重新生成非聚集索引的问题。 
              GitHub 问题 | 
| Deployment | 修复了一个问题:在对经系统版本控制的表不进行任何更改(列重新排序除外)时,历史记录表不遵循 ignorecolumnorder 属性。 | 
| Deployment | 修复了当表定义包含 SQLCMD 变量时,尽管没有更改,但外部表将被删除并重新部署的问题。 
              GitHub 问题 | 
| Export | 修复了导出操作期间提供的诊断信息错误地报告表大小(用 KB 而非字节)的问题。 
              GitHub 问题 | 
| Import | 修复了在导入到 Azure SQL 数据库期间无法创建 Azure Active Directory 用户,从而导致导入失败的问题。 
              GitHub 问题 | 
| Ledger | 修复了当账本历史记录表或视图包含无效的两部分名称时 SqlPackage 无法正确识别错误的问题。 | 
| Permissions | 修复了无法识别在数据库模型中分配给用户的权限,从而导致项目生成或 SqlPackage 操作失败的问题。 | 
| 查询存储库 | 修复了在最小值为 60 秒的情况下无法正确验证 flush_interval_seconds查询存储选项的问题。 | 
| SQL Server 2022 | 修复了函数 DATETRUNC无法识别为内置函数的问题。 
              开发者社区报告 | 
| SQL Server 2022 | 修复了函数 DATE_BUCKET无法识别为内置函数的问题。 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Import | 使用 SqlPackage 导出创建的 bacpac 文件(通过 .msi 文件安装的情况除外)在大于 4 GB 时,可能无法使用 Azure 门户和 Azure PowerShell 导入。 | 使用 SqlPackage 导入 bacpac,或者使用 .msi 文件安装的 SqlPackage 创建 bacpac 文件。 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
161.8089.0 SqlPackage
发布日期:2023 年 2 月 13 日
| Platform | Download | Version | Build | 
| 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 | 
Features
| Feature | Details | 
| Deployment | 添加使 GenerateSmartDefaults属性能够在发布期间设置为true时根据默认约束填充值的功能。 
              GitHub 问题 | 
| Azure Synapse Analytics | 添加了在提取和发布操作中对无服务器 SQL 池的支持。 | 
| SQL Server 2022 | 添加了对有序聚集列存储索引的支持。 | 
Fixes
| Feature | Details | 
| Deployment | 修复了由于默认数据和日志路径为空而无法发布到 Linux 上的 SQL 的问题。 
              GitHub 问题 | 
| Deployment | 修复了发布文件格式发生更改的外部表会导致错误的问题。 
              GitHub 问题 | 
| Deployment | 修复了一个问题:如果无法访问列加密密钥 (CEK),则发布使用随机加密进行加密的列不会立即失败,部署错误会延迟到列加密步骤才出现。 | 
| Refactor | 修复了一个问题,即在系统版本控制的表上重命名列会导致系统版本控制关闭,并且不会再次开启。 
              GitHub 问题 | 
| Platform | 修复了 SqlPackage 操作在 RHEL 9 上由于加密错误而失败的问题。 转换为使用 6.0.10 版本的 .NET 6 运行时。 
              GitHub 问题 | 
| 架构比较 | 修复了一个问题:用于发布和脚本操作的 DoNotEvaluateSqlCmdVariables属性会导致 SqlCmd 变量无法在源和目标上进行评估,而不仅仅是无法在源上进行评估。 | 
| ScriptDOM | 修复了对 REJECT_SAMPLE_VALUE的外部表支持。 | 
| ScriptDOM | 修复了压缩选项无法应用于具有聚集索引的表的问题。 | 
| SQL 项目 | 修复了以下问题:错误地将 QueryStoreFlushInterval的有效选项报告为无效。 
              开发者社区报告 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
161.6374.0 SqlPackage
发布日期:2022 年 11 月 9 日
| Platform | Download | Version | Build | 
| 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 | 
Features
| Feature | Details | 
| Platform | 将连接更改为使用加密,并且默认情况下不信任服务器证书。 对于使用自签名证书或默认情况下不加密的连接,这是一个重大变更。 有关详细信息,请参阅这篇专门介绍的文章。 | 
| Platform | 引用了 Microsoft.Data.SqlClient v5.0.1 | 
| Platform | SqlPackage 现在可以在 Windows、macOS 和 Linux 平台上以的形式进行 dotnet tool。 | 
| 始终加密 (Always Encrypted) | 添加了对具有安全隔离区的 VBS(基于虚拟化的安全)的支持。 | 
| Connectivity | 向 SqlPackage 操作添加了对 TDS 8.0 的支持以及 /SourceHostNameInCertificate和/TargetHostNameInCertificate的参数。 | 
| Replication | 添加了对 sp_addpublication 的对等复制支持。 | 
| ScriptDOM | 添加对带有谓词子查询的 isn't 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 压缩的支持。 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
19.2 SqlPackage
发布日期:2022 年 9 月 22 日
| Platform | Download | Version | Build | 
| 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 | 
Features
| Feature | Details | 
| 连接池 | 如果环境变量 CONNECTION_POOLING_ENABLED设置为 True,则为所有连接启用连接池。 对于使用 Azure Active Directory 用户名/密码连接的操作,建议采用该设置以避免 Microsoft 身份验证库 (MSAL) 限制。 | 
| 部署选项 | 显示 DacFx .NET API 中的部署选项的易记名称。 | 
| 动态数据掩码 | 在导入/导出和提取/发布中添加对精细 UNMASK 权限的支持。 | 
| Ledger | 在架构模型中添加用于验证和导出/提取的 SQL 账本历史记录表,不会将历史记录表导入或发布到数据库。 | 
| Platform | SqlPackage 现已使用 .NET 6 生成 | 
| SQL Server 2022 | 添加对权限 ALTER LEDGER CONFIGURATION、VIEW PERFORMANCE DEFINITION、VIEW ANY PERFORMANCE DEFINITION 的支持。 详细了解权限文档中提供的权限定义。 | 
| XML 压缩 | ScriptDOM、导入/导出和提取/发布中的 XML 压缩支持。 
              XML 数据文档中提供了有关 XML 数据和 XML 压缩的详细信息。 | 
Fixes
| Feature | Details | 
| Export | 修复在表的统计数据包含计算列时会导出失败的问题 | 
| Import | 修复导入停滞在 95% 的问题 | 
| ScriptDOM | 修复 STRING_SPLIT 不支持 NULL 序号值的问题 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
| XML 压缩 | SqlPackage 尚不支持 XML 索引的 XML 压缩。 | N/A | 
19.1 SqlPackage
发布日期:2022 年 5 月 24 日
| Platform | Download | Version | Build | 
| Windows | .msi 文件 | 19.1 | 16.0.6161.0 | 
| macOS .NET 核心 | .zip 文件 | 19.1 | 16.0.6161.0 | 
| Linux .NET 核心 | .zip 文件 | 19.1 | 16.0.6161.0 | 
| Windows .NET 核心 | .zip 文件 | 19.1 | 16.0.6161.0 | 
Features
| Feature | Details | 
| Azure Synapse Analytics | 添加了对本机外部数据源的支持。 | 
| Extract | 添加了对提取操作的 ExtractTarget属性的支持。 提取现在支持提取到 .sql,后者作为每个对象的文件被组织到单个文件夹、对象类型、架构或对象类型和架构中。 | 
| ScriptDOM | 添加了对 isn't DISTINCT FROM语法的支持。 | 
Fixes
| Feature | Details | 
| Azure Synapse Analytics | 修复了表名称更改的发布操作,其中表名称包括“/”字符。 | 
| Export | 修复了包含依赖项的 SQL 账本历史记录表的导出。 | 
| Extract | 修复了在存储过程中使用函数的偏移子句的提取操作失败的问题。 | 
| Extract | 修复了账本表提取操作的警告。 | 
| General | 修复了命令超时设置未正确应用的问题。 | 
| Import | 修复了导入时禁用全文索引的问题。 | 
| Publish | 修复了添加列时发布操作会删除和创建聚集列存储索引的问题。 | 
| Publish | 修复了当分区函数包含前导零时图形表无法部署的问题。 | 
| ScriptDOM | 修复了一个问题:括在括号中的 IIF条件未能解析。 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Deployment | 由于 Microsoft 身份验证库 (MSAL) 限制,使用 Azure Active Directory 用户/密码身份验证进行部署时,部署时间会增加。 
              有关 GitHub 的详细信息 | 使用替代身份验证方法,例如 Azure Active Directory服务主体 | 
| Deployment | 当对具有安全 enclave 的 Always Encrypted 使用就地加密时,适用于 Windows、macOS 和 Linux 的 .NET Core 上的 SqlPackage 在发布操作期间失败,并显示错误消息“无法识别的配置部分 system.diagnostics”。 | 从 SqlPackage 文件夹中删除文件 sqlpackage.dll.config。 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
19.0 SqlPackage
发布日期:2022 年 1 月 25 日
| Platform | Download | Version | Build | 
| Windows | .msi 文件 | 19.0 | 16.0.5400.1 | 
| macOS .NET 核心 | .zip 文件 | 19.0 | 16.0.5400.1 | 
| Linux .NET 核心 | .zip 文件 | 19.0 | 16.0.5400.1 | 
| Windows .NET 核心 | .zip 文件 | 19.0 | 16.0.5400.1 | 
Features
| Feature | Details | 
| 始终加密 (Always Encrypted) | 添加对 Always Encrypted 列的就地加密的支持。 现在,发布功能能够利用服务器端安全加密区,就地加密、解密和重新加密数据库列。 这可以节省将数据移动到数据库外部的费用。 有关就地加密的先决条件,请参阅使用具有安全 enclave 的 Always Encrypted 就地配置列加密。 注意:只有脱机方法才支持就地加密。 | 
| Azure Synapse Analytics | 添加了对列级对称加密的支持。 | 
| Ledger | 添加了对带有账本表的数据库的导出和导入的支持。 以下限制适用于导出:不迁移账本历史记录表和删除的账本表;不迁移账本系统视图中 GENERATED ALWAYS列的值和数据;忽略数据库级账本属性的值。 | 
| Platform | 添加了对将 .NET 6 作为目标框架的支持 | 
| Platform | 引用 Microsoft.Data.SqlClient (3.0),而不是 .NET Framework 版本中的 System.Data.SqlClient。 对于 .NET Core 版本,将 Microsoft.Data.SqlClient 从 2.1.3 升级到 3.0。 | 
| Platform | 将 .NET Framework 目标版本升级到 .NET 4.6.2 | 
| ScriptDOM | 添加了对 Sql160 分析器的支持。 | 
Fixes
| Feature | Details | 
| Deployment | 修复了在存储过程中对列的表分布的解释问题。 | 
| Deployment | 修复了发布操作期间“删除不在源中的对象”选项的问题。 | 
| Deployment | 修复了使用具有敏感度分类的时态表部署 dacpac 的问题。 | 
| Deployment | 修复了当 DoNotEvaluateSqlCmdVariables 设置为 true 时,仍会验证变量的 bug | 
| Extract | 修复了根据 includeCompositeObjects 选择对引用的 dacpac 的日志进行重构的问题。 | 
| Import | 修复了导入目标服务器中不支持的数据库范围配置的问题 | 
| SQL 项目 | 修复了增量统计信息在应用于主键时导致项目构建过程出现问题的问题。 | 
| SQL 项目 | 修复了使用文件表生成项目的问题。 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器)。 | N/A | 
| Deployment | 由于 Microsoft 身份验证库 (MSAL) 限制,使用 Azure Active Directory 用户/密码身份验证进行部署时,部署时间会增加。 
              有关 GitHub 的详细信息 | 使用替代身份验证方法,例如 Azure Active Directory服务主体 | 
| ScriptDOM | 分析非常大的文件可能会导致堆栈溢出。 | None | 
18.8 SqlPackage
发布日期:2021 年 10 月 4 日
| Platform | Download | Version | Build | 
| Windows | .msi 文件 | 18.8 | 15.0.5282.3 | 
| macOS .NET 核心 | .zip 文件 | 18.8 | 15.0.5282.3 | 
| Linux .NET 核心 | .zip 文件 | 18.8 | 15.0.5282.3 | 
| Windows .NET 核心 | .zip 文件 | 18.8 | 15.0.5282.3 | 
Features
| Feature | Details | 
| Export | 添加选项 VerifyExtraction,以更改架构模型验证在导出时的行为 | 
| Azure SQL | 支持账本数据库和表,包括导入和导出操作。 | 
| Platform | 对于 .NET Core 版本,将 Microsoft.Data.SqlClient 从 2.0.0 升级到 2.1.3 | 
| Azure Synapse Analytics | 支持使用对称密钥进行列加密 | 
| Azure Synapse Analytics | 支持使用 CREATE CERTIFICATE 进行列加密 | 
| Azure Synapse Analytics | 对 MERGE 语句的支持 | 
| Deployment | AE 列的变量参数化,新发布属性 IsAlwaysEncryptedParameterizationEnabled | 
| Deployment | 对 IgnoreWorkloadClassifiers 和 IgnoreDatabaseWorkloadGroups 发布属性的支持 | 
| Deployment | 对外部语言运行时的支持 | 
| ScriptDOM | 支持账本数据库和表 | 
| ScriptDOM | 支持内联索引定义中的 INCLUDE 列 | 
Fixes
| Feature | Details | 
| Deployment | 修复了外部用户部署到 Azure SQL 托管实例失败的问题 | 
| Deployment | 修复了涉及临时表的部署顺序,以在关闭系统版本控制之前删除依赖项 | 
| Deployment | 修复了 Always Encrypted 部署 bug,错误消息显示“对象名称‘#tmpErrors’无效” | 
| Export | 验证 SqlPackage 参数 ExcludeObjectType(s) 和 DoNotDropObjectType(s) | 
| Export | 通过排除数据库中的变更数据捕获 (CDC) 对象,修复了导出失败的问题。 | 
| Extract | 当第一次由于争用条件而失败时,添加重试以提取验证 | 
| Import | 通过将 MAXDOP 设置为 1,修复了在导入到 Azure 时偶尔出现死锁的问题 | 
| Import | 修复了当临时表依赖于绑定了架构的安全策略时导入失败的问题 | 
| Platform | DacFramework.msi 现在签署的是“Microsoft SQL Server Data-Tier Application Framework”而不是“SQL Server 2012” | 
| Platform | 在 x64 SqlPackage 中默认使用大型数组,修复了一些涉及大型数据库的场景。 | 
| 架构比较 | 修复了对等数据库与数据库范围的配置之间的架构比较失败的问题 | 
| 架构比较 | 修复了架构与列存储索引的比较 | 
| SQL 项目 | 修复了与“GRANT EXECUTE ANY EXTERNAL SCRIPT”相关的生成错误问题。 | 
| SQL 项目 | 修复了具有列存储索引和 (n)varchar(max) 列的数据库项目生成成功但在部署时失败的 bug | 
| SQL 项目 | 修复了存储过程中表分布列的未解析引用警告 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器) | N/A | 
| Deployment | 尚不支持 Azure SQL 账本表功能 | N/A | 
18.7.1 SqlPackage
发布日期:2021 年 6 月 2 日
              内部版本: 15.0.5164.1
Features
| Feature | Details | 
| Auditing | 添加了对 EXTERNAL_MONITOR 的支持。 | 
| Azure Synapse Analytics | 添加了对 PREDICT 的支持。 | 
| Logging | 将 SqlPackage 版本和体系结构信息添加到诊断日志文件。 | 
Fixes
| Feature | Details | 
| Export | 修复了一个问题:当第一列包含文本或图像且没有聚集索引时,导出表会失败。 | 
| Export | 修复了一个问题:在没有聚集索引的表中,如果统计数据中列的顺序与表创建脚本中的顺序不同,导出将会失败。 | 
18.7 SqlPackage
发布日期:2021 年 3 月 10 日
              内部版本: 15.0.5084.2
Features
| Feature | Details | 
| Deployment | 从 Azure 存储提取或向其中发布大数据。 有关详细信息,请参阅 SqlPackage for Big Data | 
| Azure Synapse Analytics | 行级别安全性支持(内联表值函数、安全策略、安全谓词) | 
| Azure Synapse Analytics | 工作负荷分类支持 | 
| Azure SQL Edge | 外部流式处理作业支持 | 
| Azure SQL Edge | 针对数据保留添加了表和数据库选项。 | 
| Import | 针对导入操作添加了 2 个新索引选项属性。 DisableIndexesForDataPhase(在将数据导入 SQL Server 之前禁用索引,默认值为 true)和 RebuildIndexesOfflineForDataPhase(在将数据导入 SQL Server 之后脱机重新生成索引,默认值为 false) | 
| Logging | 添加了用于所有操作的属性 (HashObjectNamesInLogs),该属性会将日志消息中的所有对象名称转换为哈希字符串。 | 
| Performance | 改进了导入和导出性能,包括增加日志记录,以帮助确定更多的瓶颈。 | 
| SQLCMD | 添加了用于部署和架构比较的属性 (DoNotEvaluateSqlCmdVariables),该属性指定是否将 SQLCMD 变量替换为值。 | 
Fixes
| Feature | Details | 
| Deployment | 将 Azure SQL 的默认 MAXDOP 从 0 更改为 8,同时更新 DacFx 中的架构模型默认值 | 
| 架构比较 | 使用 OUT 和 OUTPUT 关键字的存储过程作为差异被忽略 | 
| Deployment | 针对大数据令牌的其他验证 | 
| Build/Deployment | 对临时外部表进行完整架构模型清理,以实现最终的 dacpac 一致性。 | 
| Build/Deployment | 添加错误处理和修复非 Edge 150 RE。 | 
| Import/Deployment | 部署期间还原序列值 | 
| Deployment | 修复了更改聚集索引的压缩选项时导致重新创建表而不是 alter index 的问题。 | 
| Deployment | 修复了在表列更改时删除并重新创建聚集列存储索引的问题。 | 
| Deployment | 修复了在部署过程中删除和重新创建外部用户的问题。 | 
| 架构比较 | 修复了外部流式处理作业的架构比较问题。 | 
| Import | 启用环境设置 ReliableDdlEnabled 为部署报告编写脚本时引发空引用异常。 | 
| Deployment | 修复了按错误顺序创建包含系统版本控制的部署步骤的问题。 | 
| Deployment | 修复了由于目标包含时态表而导致架构比较更新或 dacpac 部署失败的问题。 | 
| Deployment | 基于目标之前的最后一个值进行部署后,重新设定标识种子值。 | 
已知问题
| Feature | Details | Workaround | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器) | N/A | 
| Deployment | 在增量部署方案中,当用户删除临时表时,如果删除依赖于它的对象(如函数、存储过程等),部署可能会失败。 脚本生成顺序尝试关闭表的 SYSTEM_VERSIONING,虽然这是删除表的先决条件,但生成步骤的顺序不正确。 
              工作项 | 生成部署脚本,将 System_Versioning OFF 步骤移到刚好在要删除的表之前,然后运行该脚本。 | 
18.6 SqlPackage
发布日期:2020 年 9 月 18 日
              构建: 15.0.4897.1
Features
| Feature | Details | 
| Platform | 已将 SqlPackage 的 .NET Core 版本更新为 .NET Core 3.1 | 
| 始终加密 (Always Encrypted) | 添加了对 SQL Server 2019 的安全 enclave 导入和导出的支持 | 
| Deployment | 添加了支持,以在从 Azure SQL 数据库导出时忽略已启用变更数据捕获的表 | 
| Deployment | 添加了对 Azure SQL 数据库中 OPTIMIZE_FOR_SEQUENTIAL_KEY 索引选项的支持 | 
| Deployment | 添加了对 Azure Synapse Analytics 的标识列的支持 | 
| Help | 在帮助 (/?) 中输出 SqlPackage 版本,并支持 /version 参数 | 
Fixes
| Feature | Details | 
| Deployment | 修复了以非 sysadmin 用户身份将 Azure SQL 托管实例作为目标时生成的错误部署脚本 | 
| Deployment | 修复了在运行脚本操作时加载部署的问题 | 
| Help | 当运行时间超过 1 天时,输出 SqlPackage 中的正确运行时间 | 
| Deployment | 修复了在 .NET Core 中部署时的 dacpac 注册问题 | 
| Deployment | 修复了 .NET Core 中 SqlPackage 处理 /accessToken (/at) 参数时的问题。 | 
| Deployment | 允许在存储过程中将 ALTER TABLE 语句作为非最顶层语句 | 
| Deployment | 修复了在具体化视图中验证 Azure Synapse Analytics 时不区分大小写的问题 | 
已知问题
| Feature | Details | 
| Deployment | 目前尚不支持 Azure Synapse Analytics 工作负荷管理功能(工作负荷组和工作负荷分类器) | 
18.5.1 SqlPackage
发布日期:2020 年 6 月 24 日
              内部版本: 15.0.4826.1
Fixes
| Feature | Details | 
| Deployment | 修复了 18.5 中引入的回归,在将 dacpac(具有使用外部登录名的用户)导入或部署到本地时出现“"type" 附近的语法不正确”错误 | 
18.5 SqlPackage
发布日期:2020 年 4 月 28 日
              内部版本: 15.0.4769.1
Features
| Feature | Details | 
| Deployment | 现在 SQL Server 2008 及更高版本、Azure SQL 数据库和 Azure Synapse Analytics 支持数据敏感度分类 | 
| Deployment | 添加对表约束的 Azure Synapse Analytics 支持 | 
| Deployment | 添加对有序聚集列存储索引的 Azure Synapse Analytics 支持 | 
| Deployment | 为外部数据源(Oracle、Teradata、MongoDB/CosmosDB、ODBC、大数据群集)和外部表(适用于 SQL Server 2019 大数据群集)添加支持 | 
| Deployment | 添加 SQL Database Edge 实例作为支持的版本 | 
| Deployment | 支持格式为“<server>.<dnszone>.database.windows.net”的 Azure SQL 托管实例服务器名称 | 
| Deployment | 在 Azure Synapse Analytics 中添加对复制命令的支持 | 
| Deployment | 在发布过程中添加部署选项“IgnoreTablePartitionOptions”,以便在 Azure Synapse Analytics 的分区功能发生更改时避免重新创建表 | 
| .NET 核心 | 在 SqlPackage 的 .NET Core 版本中添加对 Microsoft.Data.SqlClient 的支持 | 
Fixes
| Fix | Details | 
| Deployment | 修复将 json 路径分析为表达式的问题 | 
| Deployment | 修复为 AlterAnyDatabaseScopedConfiguration 和 AlterAnySensitivityClassification 权限生成 GRANT 语句的问题 | 
| Deployment | 修复无法识别外部脚本权限的问题 | 
| Deployment | 修复内联属性 - 属性的隐式添加不应显示差别,但显式提及应通过脚本显示 | 
| Deployment | 解决了以下问题:更改具体化视图 (MV) 引用的表导致生成 Alter View 语句。 对于 Azure Synapse Analytics,MV 不支持 Alter View 语句。 | 
| Deployment | 修复在向含有 Azure Synapse Analytics 数据的表添加列时导致发布失败的问题 | 
| Deployment | 修复在为 Azure Synapse Analytics 更改分布列类型(数据丢失方案)时更新脚本应将数据移动到新表的问题 | 
| ScriptDom | 修复 ScriptDom 无法识别内联索引之后定义的内联约束的错误 | 
| ScriptDom | 修复 ScriptDom SYSTEM_TIME 在批处理语句中缺少右括号的问题 | 
| 始终加密 (Always Encrypted) | 修复 #tmpErrors 表在 SqlPackage 重新连接并且临时表已消失时无法删除(因为临时表会在连接终止时消失)的问题 | 
已知问题
| Feature | Details | 
| Deployment | 18.5 中引入了一个回归,在将 dacpac(具有使用外部登录名的用户)导入或部署到本地时出现“"type" 附近的语法不正确”错误。 使用 sqlpackag 18.4 可暂时避开此问题,将在下一个 sqlpackag 版本中进行修复。 | 
| .NET 核心 | 由于 Microsoft.Data.SqlClient 中的这个已知问题,导入具有敏感度分类的 bacpacs 会失败,并出现“内部连接致命错误”。 此问题将在下一个 SqlPackage 版本中修复。 | 
18.4.1 SqlPackage
发布日期:2019 年 12 月 13 日
              内部版本: 15.0.4630.1
Fixes
| Fix | Details | 
| ScriptDom | ScriptDom 分析回归在 18.3.1 中引入,其中“重命名”被错误地视为顶级令牌,导致分析失败。 | 
已知问题
| Feature | Details | 
| Deployment | 18.4.1 中引入了一个回归,在使用外部登录的用户部署 dacpac 或导入 bacpac 时出现“对象引用未设置为对象的实例”错误。 使用 sqlpackag 18.4 可暂时避开此问题,将在下一个 sqlpackag 版本中进行修复。 | 
18.4 SqlPackage
发布日期:2019 年 10 月 29 日
              内部版本: 15.0.4573.2
Features
| Feature | Details | 
| Deployment | 添加了对部署到 Azure Synapse Analytics 的支持。 | 
| Platform | SqlPackage .NET Core 一般可用于 macOS、Linux 和 Windows。 | 
| 安全性 | 删除 SHA1 代码签名。 | 
| Deployment | 添加对新 Azure 数据库版本的支持:GeneralPurpose、BusinessCritical、超大规模 | 
| Deployment | 添加了对 Azure Active Directory 用户和组的 Azure SQL 托管实例支持。 | 
| Deployment | 支持 .NET Core 上的 SqlPackage 的 /AccessToken 参数。 | 
已知问题
| Feature | Details | 
| ScriptDom | ScriptDom 分析回归在 18.3.1 中引入,其中“重命名”被错误地视为顶级令牌,导致分析失败。 此问题将在下一个 SqlPackage 版本中修复。 | 
.NET Core 的已知问题
| Feature | Details | 
| Import | 对于压缩文件大小超过 4 GB 的 .bacpac 文件,你可能需要使用 SqlPackage 的 .NET Core 版本来执行导入。 此行为由 .NET Core 生成 zip 标头文件的方式导致,虽然 zip 标头文件是有效的,但无法由 SqlPackage 的 .NET Full Framework 版本读取。 | 
| Deployment | 不支持参数 /p:Storage=File。 .NET Core 仅支持 Memory。 | 
| 始终加密 (Always Encrypted) | SqlPackage .NET Core 不支持 Always Encrypted 列。 | 
| 安全性 | SqlPackage .NET Core 不支持用于多重身份验证的 /ua 参数。 | 
| Deployment | 不支持使用 json 数据序列化的较旧 V2 dacpac 和 bacpac 文件。 | 
18.3.1 SqlPackage
发布日期:2019 年 9 月 13 日
              内部版本: 15.0.4538.1
Features
| Feature | Details | 
| Deployment | 添加对部署到 Azure Synapse Analytics(预览版)的支持。 | 
| Deployment | 将 /p:DatabaseLockTimeout=(INT32 '60') 参数添加到 SqlPackage。 | 
| Deployment | 将 /p:LongRunningCommandTimeout=(INT32) 参数添加到 SqlPackage。 | 
| Export/Extract | 将 /p:TempDirectoryForTableData=(STRING) 参数添加到 SqlPackage。 | 
| Deployment | 允许从其他位置加载部署参与者。 将从以下位置加载部署参与者:与部署目标 .dacpac 相同的目录、与 SqlPackage 二进制文件相对应的扩展目录,以及添加到 SqlPackage 的 /p:AdditionalDeploymentContributorPaths=(STRING) 参数(可在其中指定其他目录位置)。 | 
| Deployment | 添加对 OPTIMIZE_FOR_SEQUENTIAL_KEY 的支持。 | 
Fixes
| Fix | Details | 
| Deployment | 修复了忽略自动索引使其不会在部署时被删除的问题。 | 
| 始终加密 (Always Encrypted) | 修复了处理 Always Encrypted varchar 列的问题。 | 
| Build/Deployment | 修复了解析 xml 列集的 nodes() 方法的问题。 | 
| ScriptDom | 修复了“URL”字符串被解释为顶级令牌的其他情况。 | 
| Graph | 修复了约束中伪列引用的生成 SQL 的问题。 | 
| Export | 生成满足复杂性要求的随机密码。 | 
| Deployment | 修复了在检索约束时遵循命令超时的问题。 | 
| .NET Core(预览版) | 修复了诊断日志记录到文件的问题。 | 
| .NET Core(预览版) | 使用流式传输来导出表数据,以支持大型表。 | 
18.2 SqlPackage
发布日期:2019 年 4 月 15 日
              内部版本: 15.0.4384.2
Features
| Feature | Details | 
| Graph | 添加了对边缘约束和边缘约束子句的图形表支持。 | 
| Deployment | 启用了模型验证规则以支持 SQL Server 2016 及更高版本的索引键的 32 个列。 | 
Fixes
| Fix | Details | 
| Deployment | 修复由于使用了不受支持的查询提示而导致的 SQL Server 2016 RTM 数据库反向工程问题。 | 
| Deployment | 修复了 create filegroup 语句之前出现的 auto close alter 语句的部署顺序问题。 | 
| ScriptDom | 修复 ScriptDom 解析回归,其中“URL”字符串被解释为顶层令牌。 | 
| Deployment | 修复了分析“alter table add index”语句时出现的空引用异常。 | 
| 架构比较 | 修复了始终显示为不同的可为空的持久化计算列的架构比较。 | 
18.1 SqlPackage
发布日期:2019 年 2 月 1 日
              内部版本: 15.0.4316.1
预览版。
Features
| Feature | Details | 
| Deployment | 添加了对 UTF8 排序规则的支持。 | 
| Deployment | 已在索引视图上启用非聚集列存储索引。 | 
| Platform | 已移动到 .NET Core 2.2。 | 
| 架构比较 | 将内存支持的存储用于在 .NET Core 上进行架构比较。 | 
Fixes
| Fix | Details | 
| Performance | 修复了性能以使用旧版基数估计器进行反向工程查询。 | 
| Performance | 修复了生成脚本时出现的重大架构比较性能问题。 | 
| 架构比较 | 修复了架构偏差检测逻辑以忽略特定扩展事件 (xevent) 会话。 | 
| Graph | 修复了图形表的导入顺序。 | 
| Export | 修复了导出具有对象权限的外部表的问题。 | 
已知问题
此版本包括面向 .NET Core 2.2 的 SqlPackage 跨平台预览版。 SqlPackage 可以在 macOS 和 Linux 上运行。
| 已知问题 | Details | 
| Deployment | 对于 .NET Core,不支持生成和部署参与者。 | 
| Deployment | 对于 .NET Core,不支持使用 json 数据序列化的较旧 dacpac 和 bacpac 文件。 | 
| Deployment | 对于 .NET Core,由于区分大小写的文件系统出现问题,因此可能无法解析引用的 dacpacs(例如 master.dacpac)。 一种解决方法是大写引用文件的名称(例如 MASTER.BACPAC)。 | 
18.0 SqlPackage
发布日期:2018 年 10 月 24 日
              内部版本: 15.0.4200.1
Features
| Feature | Details | 
| Deployment | 添加了对数据库兼容级别 150 的支持。 | 
| Deployment | 添加了对 Azure SQL 托管实例的支持。 | 
| Performance | 添加了 MaxParallelism 命令行参数以指定数据库操作的并行度。 | 
| 安全性 | 添加了 AccessToken 命令行参数以在连接到 SQL Server 时指定身份验证令牌。 | 
| Import | 添加了对流式传输 BLOB/CLOB 数据类型以进行导入的支持。 | 
| Deployment | 添加了对标量 UDF“INLINE”选项的支持。 | 
| Graph | 添加了对图形表“MERGE”语法的支持。 | 
Fixes
| Fix | Details | 
| Graph | 修复了图形表的未解析伪列。 | 
| Deployment | 修复了使用内存优化表时创建具有内存优化文件组的数据库的问题。 | 
| Deployment | 修复了将扩展属性包括在外部表中的问题。 | 
17.8 SqlPackage
发布日期:2018 年 6 月 22 日
              内部版本: 14.0.4079.2
Features
| Feature | Details | 
| Diagnostics | 改进了连接失败的错误消息,包括 SqlClient 异常消息。 | 
| Deployment | 支持对单分区索引进行索引压缩以便导入/导出。 | 
Fixes
| Fix | Details | 
| Deployment | 修复了 SQL 2017 及更高版本的 XML 列集的反向工程问题。 | 
| Deployment | 修复了在 Azure SQL 数据库中,脚本编写时忽略了数据库兼容性级别 140 的问题。 | 
17.4.1 SqlPackage
发布日期:2018 年 1 月 25 日
              内部版本: 14.0.3917.1
Features
| Feature | Details | 
| 导入/导出 | 添加了 ThreadMaxStackSize 命令行参数以分析具有大量嵌套语句的 Transact-SQL。 | 
| Deployment | 数据库目录排序规则支持。 | 
Fixes
| Fix | Details | 
| Import | 将 Azure SQL 数据库 bacpac 导入到本地实例时,修复了由于“此版本的 SQL Server 不支持没有密码的数据库主密钥”而出现的错误。 | 
| Graph | 修复了图形表的未解析伪列错误。 | 
| 架构比较 | 修复了用于比较架构的 SQL 身份验证问题。 | 
17.4.0 SqlPackage
发布日期:2017 年 12 月 12 日
              内部版本: 14.0.3881.1
Features
| Feature | Details | 
| Deployment | 添加了对 SQL 2017+ 和 Azure SQL 数据库上的时态保留策略  的支持。 | 
| Diagnostics | 添加了 /DiagnosticsFile:"C:\Temp\SqlPackage.log" 命令行参数以指定用于保存诊断信息的文件路径。 | 
| Diagnostics | 添加了 /Diagnostics 命令行参数以将诊断信息记录到控制台。 | 
Fixes
| Fix | Details | 
| Deployment | 遇到无法理解的数据库兼容性级别时,不要阻止。 相反,会假定最新的 Azure SQL 数据库或本地平台。 | 
|  |  |