症状
假设你使用 Microsoft SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014 中的并行查询计划运行包含 UNION 运算符的查询。 如果满足以下条件,则流聚合运算符可能会产生重复的行:
-
查询使用常量或包含固定值的列(例如,在选择列时,列 = <常量> )。
-
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 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。