KB4490138 - 修复:如果表在 2016 年和 2017 SQL Server中未更改 NCI 的键列或包含列,则可能无法维护基于 CCI 筛选的 NCI

应用对象
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Linux

症状

假设在 2016 年和 2017 SQL Server CCI) (NCI) 具有经过筛选的非聚集索引的表。 (CCI) 。 如果以 NCI 的键列或包含列均未更新的方式更新表,可能会注意到未维护筛选的 NCI。 具体而言,更新将导致 CCI 中的行移动,并且筛选的 NCI 中相应行的定位符值可能不会更新。 此问题可能会导致 SELECT 查询出现永久性的跨行集损坏和错误结果。

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

解决方法

以下SQL Server累积更新中修复了此问题:

关于SQL Server的累积更新:

SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:

参考资料

了解 Microsoft 用于描述软件更新的术语