症状
假设你有一个表在 Microsoft SQL Server 2012 或 SQL Server 2014 中包含非唯一索引。 当您运行查询以使用包含分区键的位图索引来更新表时,会收到以下错误消息:
注意
消息 2601,级别 14,状态 1,行 1
无法在具有唯一索引<索引名称>的对象<表名称>中插入重复的键行。 重复键值 (为 0, <值> 为) 。
注意 该索引不是唯一索引,允许重复。
解决方法
此问题已首先在 SQL Server 的以下累积更新中修复。
SQL Server 2014 累积更新 4 /en-us/help/2999197
SQL Server 2012 SP2 累积更新 2 /en-us/help/2983175
SQL Server 2012 SP1 累积更新 11 /en-us/help/2975396
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
解决方法
要解决此问题,请启用跟踪标志 8690 以禁用假脱机操作。 但是,由于 Spool 被禁用,此解决方法可能会导致性能下降。
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。