本文介绍 Microsoft SQL Server 2022 的累积更新包 1 (CU1) 。 此更新包含以下版本中的 64 个修补程序 和更新组件:

  • SQL Server - 产品版本:16.0.4003.1,文件版本:2022.160.4003.1
  • Analysis Services - 产品版本: 16.0.43.208,文件版本: 2022.160.43.208
  • 此累积更新包括最近发布的 GDR for SQL Server 2022 ( KB5021522 - SQL Server 2022 GDR 安全更新说明:2023 年 2 月 14 日) 。 有关 SQL 服务版本的详细信息,请参阅 SQL Server 的服务模型

    此更新中的已知问题

    此累积更新中没有已知问题。

    此更新中包含的改进和修复

    提供包含生成摘要列表及其当前支持生命周期的可下载 Excel 工作簿。 Excel 文件还包含SQL Server 2022、SQL Server 2019 和 2017 SQL Server的详细修复列表。 选择立即下载此 Excel 文件

    可以直接通过书签引用下表中的单个条目。 如果选择表中的任何 bug 引用 ID,则会使用“#NNNNNNN”格式将书签标记添加到 URL。 然后,你可以与其他人共享此 URL,以便他们可以直接跳转到表中所需的修补程序。

    有关此累积更新中包含的 bug 和增强功能的详细信息,请参阅以下 Microsoft 知识库文章。

    Bug 参考Description修复区域组件平台 2078803 修复了执行特定数据分析表达式时的潜在内存访问冲突和错误结果, (DAX) 触发内部水平融合查询优化的查询。

    注意 在应用累积更新之前,可以通过将 DAX\HorizontalFusion 配置选项设置为 0 作为解决方法来禁用该功能。 Analysis Services Analysis Services Windows 2113832 汇报混合引擎用来解决 CVE-2022-41064 中讨论的安全漏洞的 Microsoft.Data.SqlClient 程序集。 Analysis Services Analysis Services Windows 2115275 增强用于加密SQL Server Analysis Services (SSAS) 模型中数据源和连接字符串的加密算法。 有关详细信息,请参阅 升级加密 。 Analysis Services Analysis Services Windows
    2082644
    2089261 修复了以下问题:具有 DQS KB 操作员 (dqs_kb_operator) 角色或更高特权级别角色的任何成员都可以在托管SQL Server的计算机上创建或覆盖任意文件,因为运行SQL Server服务的帐户 (默认帐户) NT SERVICE\MSSQLSERVER 。 数据质量服务 数据质量服务 Windows 2008855 修复了在安装SQL Server数据库引擎后尝试启动SQL Server导入和导出向导时发生的以下错误:

    发生了SQL Server Integration Services 向导未准备好处理的错误。 (SQL Server导入和导出向导)


    ===================================
    无法加载文件或程序集“Microsoft.DataTransformationServices.ScaleHelper, Version=16.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或其依赖项之一。 系统找不到指定的文件。 (DTSWizard) Integration Services Integration Services Windows 2076990 修复了运行更改数据捕获 (CDC) 控制任务失败时发生的以下错误:

    无法加载文件或程序集'Microsoft.SqlServer.DtsMsg,Version=16.100.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91'或其依赖项之一。 所定位程序集的清单定义与程序集引用不匹配。 HRESULT 的 (异常:0x80131040) Integration Services Integration Services Windows 2159526 在视图中将 ROUTINE_DEFINITION 列的长度还原到 4000, INFORMATION_SCHEMA.ROUTINES 因为先前更改的长度可能会导致意外的不一致。 Integration Services Integration Services 2042238 修复了“传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。 参数 1 (“) :数据类型0x00未知”错误,在连接设置中使用 严格加密选项 时发生。 有关此方案的示例,请参阅 执行存储过程时,具有 Encrypt=Strict 的无效 TDS 流错误 。 SQL 连接 SQL 连接 2120777 修复了两个SQL Server实例之间的通信中 ODBC 驱动程序中的内存损坏的罕见问题。 当目标SQL Server实例使用下级版本的表格数据流 (TDS) 协议时,会出现此问题。 不正确的版本检查会导致在连接的客户端上对映像数据类型进行不当解码。 SQL 连接 SQL 连接 Windows 2157874 修复了当SQL Server实例承受内存压力时,内存不足 (OOM) 异常触发的访问冲突和 INVALID_POINTER_READ_CPP_EXCEPTION_c0000005_sqldk.dll!ex_oomCheck 异常。 SQL 性能 查询优化器 2069101 修复了数据库邮件在包含的可用性组 (AG) 中使用时,数据库邮件无法发送电子邮件并在SQL Server错误日志中记录以下错误消息的问题:

    激活的 proc '[dbo].[在队列“DatabaseName>_msdb.dbo.ExternalMailQueue”<上运行的sp_sysmail_activate]“输出以下内容:”找不到对象'ExternalMailQueue',因为它不存在,或者你没有权限。 SQL Server 客户端工具 数据库邮件 2114695 修复了在数据文件围绕 PFS 边界增长 (8,088 页的倍数后,差异备份跳过新的页面可用空间 (PFS) 页的问题;64,704 KB) ,导致数据库损坏,并在还原此差异备份时可能出现故障转储。 SQL Server引擎 2154919 修复了在单用户模式下暂停数据库时 Transact-SQL 快照备份失败并出现以下错误的问题:

    Msg 3081、级别 16、状态 9、Line <LineNumber
    >数据库“DatabaseName>”<以前已暂停进行快照备份。
    消息 5069,级别 16,状态 1,行 <编号>
    ALTER DATABASE 语句失败。 SQL Server引擎 2138926 改进: sp_invoke_external_rest_endpoint 存储过程仅在Azure SQL数据库环境中受支持。 如果尝试在本地环境中使用此过程,将收到类似于以下错误的虚假错误:

    Msg 2812、级别 16、状态 99、过程sys.sp_invoke_external_rest_endpoint_internal、Line <LineNumber> [Batch Start LineNumber<>]
    找不到存储过程“sp_invoke_external_rest_endpoint_internal”。

    此修复使消息可按如下所示阅读:

    此版本的 SQL Server 不支持“sp_invoke_external_rest_endpoint”。 SQL Server引擎 2075503 修复了以下问题:如果查询使用堆且堆中存在转发记录,则对可读次要副本的读取查询可能会中止或返回意外结果。 SQL Server引擎 高可用性和灾难恢复 1948145 修复了错误 41842,即使本机编译的存储过程或内存中事务在单个事务中不插入许多记录,也未正确显示。 下面是错误消息:

    错误 41842:在此事务中插入或更新的行过多。 在单个事务中的内存优化表中,最多可以插入或更新 4,294,967,294 行。 SQL Server引擎 In-Memory OLTP 1993393 修复了以下方案中出现的错误 35221:

    - 尝试将文件添加到 FILESTREAM 文件组或内存优化文件组。
    - 尝试将其他事务日志文件添加到数据库。

    错误消息:

    消息 35221,级别 16,状态 1,行 <编号>
    无法处理操作。 Always On可用性组副本管理器在此SQL Server实例上处于禁用状态。 使用 SQL Server 配置管理器启用Always On可用性组。 然后,重启SQL Server服务,并重试当前操作。 有关如何启用和禁用Always On可用性组的信息,请参阅联机丛书SQL Server。 SQL Server引擎 In-Memory OLTP 2087479 应用此更新后,至少需要控制服务器权限才能运行过程 sys.sp_xtp_force_gc 。 此更新将过程的实现更改为对要释放的已分配字节和已用字节的单个调用。 在应用此更新之前,需要调用它两次。 有关详细信息,请参阅 逐步增加 XTP 内存消耗 量。 SQL Server引擎 In-Memory OLTP Windows 2153494 修复了断言失败 (位置:execcoll.cpp:1317;表达式:“savepointId > HkTxSavePointDefault”) ,在 Hekaton 事务中的保存点清理期间发生。 SQL Server引擎 In-Memory OLTP 2160880 修复了以下问题:In-Memory具有流式表值函数的 OLTP 存储过程 (STFS) 、表达式或约束检查可能会生成不一致的查询计划哈希。 SQL Server引擎 In-Memory OLTP 2098401 修复了由于某些元数据不一致而导致内存转储 CMIterStatsDisk::GetNextStatForLeadingColumn 的问题。 SQL Server引擎 Metadata 2135970 修复了 DBCC CLONEDATABASE 从早期版本的 SQL Server 升级源数据库时失败的问题。 SQL Server引擎 Metadata 2084307 修复了以下方案中可能出现的索引不一致或不正确的结果:

    - 启用加速数据库恢复 (ADR) 和快照隔离。
    - 回滚到保存点。
    - 在已中止的行的基础上进行更新,版本清理滞后于此更新。 SQL Server引擎 访问存储数据的方法 2081891 修复了在采用字符串的函数中的参数中使用返回值时 JSON_ARRAY / JSON_OBJECT 发生的异常。 应用此修补程序后,和 JSON_OBJECT JSON_ARRAY 返回值是可强制的,可用作字符串参数。 SQL Server引擎 2115768 修复了在本机编译的模块中出现的断言失败,该 Inner FOR JSON 运算符后跟一个用于缓冲相应对象的运算符,例如另一个 FOR JSON ORDER BY 运算符。 此外,你可能会看到以下断言表达式:

    Location: memilb.cpp:<LineNumber
    >Expression: (*ppilb) -m_cRef> == 0
    SPID: <SPID>
    进程 ID: <ProcessID> SQL Server引擎 2118401 在应用此更新之前,如果数据类型为数值、布尔值或内部 JSON 数据类型,则不会引用 JSON_OBJECT 函数输出中的键名称。 应用此更新后,将引用 中的 JSON_OBJECT 密钥。 SQL Server引擎 2043012 修复:SQL Server 2022 和 2019 中的标量 UDF 内联问题 (KB4538581) SQL Server引擎 1860413 此修补程序解决了重命名数据库时可能出现的以下问题:

    问题 1:SQL Server崩溃时具有非默认架构 (例如: CREATE USER <user_name> FOR LOGIN <login_name> WITH DEFAULT_SCHEMA = <schema_name> ) 按以下顺序执行查询:

    1。 使用隐式名称 (未显式指定的架构名称执行如下所示的查询,需要SQL Server确定) 相同的名称:
    SELECT * FROM <database_name>..<table_name>
    2。 重命名数据库。
    3. 重新运行步骤 1 中的隐式查询。

    问题 2:修复了在SQL Server实例上按相同顺序执行以下步骤时发生的SQL Server错误 942:

    1。 查询数据库中的表 (例如: SELECT * FROM DatabaseA.sys.columns ) 。
    2. 重命名现有数据库 (例如: ALTER DATABASE DatabaseA MODIFY NAME = DatabaseA_old ) 。
    3. 将此重命名的数据库脱机 (例如: ALTER DATABASE DatabaseA_old SET OFFLINE ) 。
    4. 将服务器上的另一个数据库重命名为与步骤 2 中重命名的数据库的名称相同, (例如: ALTER DATABASE DatabaseA_new MODIFY NAME = DatabaseA ) 。
    5. 现在,如果查询此数据库中的表 (例如: SELECT * FROM DatabaseA.sys.columns ) ,将收到以下 942 错误:

    Msg 942,级别 14,状态 4,LineNumber
    <> 数据库“ DatabaseA_old ”无法打开,因为它处于脱机状态。 SQL Server引擎 2009090 修复了运行使用百分位模式进行内存授予反馈的查询时的错误 8657。 SQL Server引擎 2116378 修复了当 CSV) 文件的逗号分隔值 (整数 (int) 值大于 int 的最大值且在此 CSV 文件上运行 SELECT <integer_column_name> FROM OPENROWSET 时引发正确数据类型溢出错误的故障。 SQL Server引擎 2120696 改进:检测到 BLOB 断言失败时,自动启用 blob (二进制大型对象) 跟踪环缓冲区功能。 这种改进有助于更好地调查此类问题。 SQL Server引擎 2086044 修复了在执行特制 CREATE STATISTICS UPDATE STATISTICS 语句时,经过身份验证的攻击者可能会影响SQL Server内存的问题。 SQL Server引擎 查询优化器 2113374 修复了当辅助副本将游标计划发送到主副本以在 查询存储 (QDS) 中存储时,主要副本上发生的访问冲突异常。 SQL Server引擎 1959261 修复了对大量表启用更改跟踪并自动或手动清理更改跟踪表时出现的 CPU 使用率过高的情况。 SQL Server引擎 Windows 1967560 修复了错误 12300 (不支持计算列) 和 12301 (索引键中的可为 Null 列) 分别对具有计算列的内存优化表启用事务复制和对可为空列启用索引。 应用此修补程序后,可以在内存优化表上启用事务复制,其中包含计算列,对可为空列启用索引。 SQL Server引擎 Windows 2049442 请考虑以下方案:

    - 你有一个事务复制设置。
    - 执行 sp_changearticle 存储过程以更改发布服务器上的项目属性,数据操作语言 (DML) 已发布表上发生更改。

    在这种情况下,日志读取器代理读取器线程可能会在处理日志记录时生成以下断言转储:

    * 位置:replrowset.cpp:<LineNumber
    >* 表达式: (LSN) m_curLSN < (LSN) (pSchemas-schema_lsn_begin)
    >* SPID: <SPID>
    * 进程 ID:<ProcessID> SQL Server引擎 2068781 修复了SQL Server进程中的逐渐内存泄漏, (事务复制中日志读取器代理导致的) 使用率过高 MEMORYCLERK_SOSNODE 。 SQL Server引擎 2104416 修复了以下问题:当发布服务器位于ALWAYS ON可用性组中, (AG) 并且分发服务器上存在故障转移时,日志读取器代理创建的临时链接服务器并不总是正确删除。 应用此修补程序后,链接服务器将正确删除。 SQL Server引擎 Windows 2129326 修复了错误 8992 [检查目录 Msg 3853,状态 1:sys.database_principals中行 (principal_id=<ID>) 的属性 (owning_principal_id=<ID>) 在 sys.database_principals 中没有匹配的行 (principal_id=<ID>) 。] DBCC CHECKDB 针对更改数据捕获的数据库克隆执行时生成, (CDC) 已启用的源数据库,该数据库具有 CDC 用户拥有的系统定义角色。 SQL Server引擎 2130492 解决了影响更改跟踪自动清理和手动清理查询的查询性能问题。

    注意 需要打开跟踪标志 8286 和 8287,因为这会强制清理查询使用 FORCE ORDER FORCESEEK 提示来加快性能。 SQL Server引擎 2138330 修复了 2022 SQL Server 2022 年由更改数据捕获 (CDC) 计时问题引起的主键冲突错误。 CDC 捕获过程可能会尝试在 cdc.lsn_time_mapping 表中插入重复 start_lsn 值,你可能会看到类似于以下错误消息:

    违反 PRIMARY KEY 约束“lsn_time_mapping_clustered_idx”。 无法在对象“cdc.lsn_time_mapping”中插入重复键。 重复键值 ( ) 。

    注意 此修复涵盖此错误的所有原因。 对于在 SQL Server 2019 中发生的相同问题,其中安装了以前的累积更新(SQL Server 2017 和 2016 SQL Server),请参阅以前的修复 KB 4521739 。 但是,以前的修复未涵盖所有情况。 SQL Server引擎 2138691 修复了SQL Server复制中的错误 302。 当分发代理尝试将主键 NEWSEQUENTIALID 作为默认值的表应用生成的快照时,将发生以下错误:

    Msg 302,严重性 16
    newsequentialid () 内置函数只能在 CREATE TABLE 或 ALTER TABLE 语句中“uniqueidentifier”类型的列的 DEFAULT 表达式中使用。 它不能与其他运算符组合以形成复杂的标量表达式。 SQL Server引擎 Windows 2151109 修复了运行快照代理时发生的错误 241,并且系统日期格式已更改为与 SQL Server 使用的格式不同的格式。

    错误消息:

    从字符串转换日期和/或时间时转换失败。 SQL Server引擎 2160907 修复了在使用非缓存连接无法连接到订阅服务器时,分发代理返回常规消息代码 20046 而不是连接失败消息代码 20084 的问题。 这些错误特定于复制分发代理。

    错误消息:

    20046:进程遇到常规外部错误。
    20084:进程无法连接到服务器。 SQL Server引擎
    2114313
    2158583 此修补程序是针对某些罕见查询中的内存容量导致不可用的问题的一种安全措施, (执行表扫描的嵌套查询) 。 发出这些查询之前,它会尝试确保有足够的空间可用,并避免导致任何进一步的容量问题。 SQL Server引擎 Resource Governor 2105584 修复了全文搜索在全文查询中生成内存泄漏和高等待的问题。 SQL Server引擎 2123504 增强:将 FT_IFTS_RWLOCK 等待类型拆分为更精细的等待类型,以便更准确地诊断问题。 有关这些等待类型的详细信息,请参阅 sys.dm_os_wait_stats (Transact-SQL) 。 SQL Server引擎 2118499 修复:使用 EKM 进行加密和密钥生成的大量客户工作负载的数据库可访问性问题 (KB5023236) SQL Server引擎 安全性基础结构 Windows 2058060 应用此更新后,可以审核与外部治理启用/禁用操作相对应的事件 ( EXTERNAL GOVERNANCE TURNED ON EXTERNAL GOVERNANCE TURNED OFF ) , (Microsoft Purview 访问策略) 。 评估数据读取器和编写器权限时,可确保审核记录的正确性。 此更新引入了跟踪标志 (TF) 12481,以禁用审核记录字段中外部权限 external_policy_permission_checked 的日志记录审核信息。 SQL Server引擎 安全性基础结构 2088539 将 Microsoft 客户体验改善计划 (CEIP) 遥测的查询和类别添加到 2022 SQL Server。 SQL Server引擎 安全性基础结构 2100518 修复了在为 SQL Server 2022 配置 Azure AD 后,Azure Active Directory (Azure AD) 管理员未添加到 sysadmin 组的问题。 SQL Server引擎 安全性基础结构 2101033 汇报在 SQL Server中用于 Microsoft Purview 访问策略的错误消息 37517:

    从 IMDS 终结点获取 ARC 资源信息时发生内部错误。 Substate: '%ls',status: 0x%08x。 SQL Server引擎 安全性基础结构 2101035 修复了一个异常,该异常在使用适用于 SQL Server 2022 的 Microsoft Purview 访问策略并以非管理员 Azure Active Directory (Azure AD) 用户身份运行 sp_external_policy_refresh 存储过程时生成转储文件。 SQL Server引擎 安全性基础结构 2117119 删除 SQL Server 2022 中 RSA 加密代码中的多重继承情况。 SQL Server引擎 安全性基础结构 2117122 修复了错误 33025 中的拼写问题, (加密提供程序属性无效:使用可扩展密钥管理 (EKM) 功能时%S_MSG) 。 SQL Server引擎 安全性基础结构 2117214 修复了从 SQL Server Management Studio (SSMS) 加载审核日志时可能发生的以下错误:

    已添加项。 字典中的键:正在添加的“MNDO”键:“MNDO” SQL Server引擎 安全性基础结构 2125981 sys.dm_external_provider_certificate_info (DMV) 添加新的动态管理视图,该视图返回有关SQL Server中用于设置和维护 Azure Active Directory (Azure AD) 管理员用于 Azure AD 身份验证的 Azure 云证书的信息。 有关详细信息,请参阅 sys.dm_external_provider_certificate_info (Transact-SQL) 。 SQL Server引擎 安全性基础结构 2131225 修复了 Purview 的基于属性的策略的以下问题 - Azure 基于属性的访问控制 (Azure ABAC) :

    - 属性未正确同步。
    - 同步过程无法通过没有属性同步的表。
    - 重试时,同步过程遇到异常,因为它预期数据库状态为计划不同步。 SQL Server引擎 安全性基础结构 Windows 2021487 修复了 SQL Server 2022 中数据库引擎错误消息中的拼写问题。 SQL Server引擎 SQL 引擎 1862944 此更新消除了对具有直接写入功能的混合缓冲池 (TF) 809 跟踪标志的要求。 应用此更新后,2022 SQL Server默认启用此功能。 此更新引入了 TF 898,用于禁用 Direct Write 混合缓冲池 的行为以进行故障排除或调试。 SQL Server引擎 SQL OS 2137927 修复了更改主表上的列时,即使事务与外键列无关,也会在外键表上获取架构修改 (Sch-M) 锁的问题。 应用此修补程序后,SQL Server仅获取外键表 (Sch-S) 锁的架构稳定性。 有关详细信息,请参阅 架构锁 。 SQL Server引擎 表索引分区 2162849 修复了内部更新统计信息事务保留锁的自死锁问题,这可能导致用户查询出现未解决的死锁。 出现此问题的原因是,系统运行更新查询统计信息时未释放锁。 应用此修补程序后,可以按预期释放锁。 SQL Server引擎