KB3196012 - 修复:对于未由 SQL Server 中的全文索引正确索引的行,记录了不正确的全文键

应用对象
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 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)

症状

假设在 Microsoft SQL Server 2012、2014 或 2016 中在包含较长十进制值或数值的列上创建了主键。 然后,使用此列作为唯一键索引来创建全文索引。 在这种情况下,如果某些行未能编制索引,则全文键值将记录为负数或 Unicode 字符。 因此,无法识别无法编制索引的行。

解决方法

此问题已在 SQL Server 的以下累积更新中修复:

SQL Server 2016 SP1 累积更新 2

SQL Server 2016 累积更新 4

     SQL Server 2012 Service Pack 3 累积更新 6

SQL Server 2014 SP1 累积更新 10
        
         SQL Server 2014 SP2 累积更新 3

关于 SQL Server 的累积更新

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

SQL Server 2016 的最新累计更新

SQL Server 2014 SP1/SP2 的最新累计更新

     SQL Server 2012 的最新累计更新

解决方法

若要解决此问题,请向表中添加唯一的 bigint 或 int 列,并改用该列指定全文。 报告失败的行或文档时,Int 和 bigint 会将其值正确地报告到全文错误日志。 全文使用的唯一列不必是表的主键。

状态

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

参考资料

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