KB2939277 - FIX: 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 で並列クエリ プランを使用して、UNION 演算子を含むクエリを実行することを想定しています。 ストリーム集計演算子は、次の条件に該当する場合に重複する行を生成する可能性があります。

  • クエリでは、定数または固定値を持つ列を使用します (たとえば、列が選択されている場合、column = <constant などの述語から暗黙的に>)。
  • SQL Serverは、定数または固定値を集計するストリーム集計演算子を含む並列クエリ実行プランを使用します (このストリーム集計演算子は、個別の出力を生成するために UNION 演算子を含むクエリで導入できます)。

解決策

SQL Server 2012

SQL Server 2012 の場合、この問題を解決するには、2012 Service Pack 2 SQL Server適用します。 SQL Server 2012 SP2 で修正されたバグの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

SQL Server 2012 Service Pack 2 で修正された2958429バグ

この問題は、SQL Serverの次の累積的な更新プログラムで最初に修正されました。

SQL Server 2008 R2 SP2 /en-us/help/2967540 の累積的な更新プログラム 13

SQL Server 2014 /en-us/help/2967546 の累積的な更新プログラム 2

SQL Server 2012 SP1 /en-us/help/2954099 の累積的な更新プログラム 10

SQL Server 用の累積的な更新プログラムについて

SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。

      

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。