KB2939277 - 修复:在 SQL Server 中使用并行查询计划运行包含 UNION 运算符的查询时,出现错误结果

应用对象
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard

症状

假设你在 Microsoft SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014 中使用并行查询计划运行包含 SQL Server 运算符的查询。 当满足以下条件时,流聚合运算符可能会生成重复行:

  • 该查询使用常量或具有固定值 (的列,例如,在) 选择列时隐含来自谓词,如 column = <constant> 。
  • SQL Server使用并行查询执行计划,其中包括一个流聚合运算符,该运算符在常量或固定值上聚合 (可以在包含 UNION 运算符的查询中引入此流聚合运算符,以生成不同的输出) 。

解决方法

SQL Server 2012

对于 SQL Server 2012,若要解决此问题,请应用 SQL Server 2012 Service Pack 2。 有关 SQL Server 2012 SP2 中修复的 Bug 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2958429 SQL Server 2012 Service Pack 2 中修复的 Bug

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

SQL Server 2008 R2 SP2 的累积更新 13 /en-us/help/2967540

SQL Server 2014 累积更新 2 /en-us/help/2967546

SQL Server 2012 SP1 累积更新 10 /en-us/help/2954099

关于 SQL Server 的累积更新

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

      

状态

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