メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

Microsoft は、Microsoft SQL Server 2008 R2 Service Pack 2 (SP2) の修正プログラムを1つのダウンロード可能なファイルとして配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2008 R2 Service Pack 2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。

現象

次の条件に該当する場合、Microsoft SQL Server 2008 R2 SP2 または Microsoft SQL Server 2012 でクエリを実行すると、誤った結果が表示されることがあります。

  • このクエリでは、完全な結合句の結果に対してクロス適用句が使用されています。

  • テーブルデータは、 完全な JOIN 句でテーブル値のユーザー定義関数を呼び出すことによって提供されます。

  • この関数は、パラメーターとして列名を受け取り、結果をテーブルとして返します。

たとえば、次のようなクエリを実行します。

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s  

注: この問題は、Microsoft SQL Server 2012 では発生しません。

解決方法

累積的な更新プログラムの情報

SQL Server 2012 の累積更新プログラム7

この問題の修正プログラムは、累積的な更新プログラム7で最初にリリースされました。SQL Server 2012 用の累積更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2823247 累積的な更新プログラムパッケージ 7 (SQL Server 2012)注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2012 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2692828 SQL Server 2012 がリリースされた後にリリースされた SQL Server 2012 ビルド

SQL Server 2012 SP1 の累積更新プログラム3

この問題の修正プログラムは、累積的な更新プログラム3で最初にリリースされました。SQL Server 2012 SP1 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2812412 SQL Server 2012 Service Pack 1 の累積更新プログラムパッケージ3注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2012 SP1 修正プログラムに含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2772858 SQL Server 2012 Service Pack 1 がリリースされた後にリリースされた SQL Server 2012 ビルド

SQL Server 2008 R2 SP2 の累積更新プログラム5

この問題の修正プログラムは、累積的な更新プログラム5で最初にリリースされました。この累積的な更新プログラムパッケージを SQL Server 2008 R2 SP 2 で入手する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2797460 SQL Server 2008 R2 Service Pack 2 の累積更新プログラムパッケージ5注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 R2 SP 2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2730301 SQL Server 2008 R2 Service Pack 2 がリリースされた後にリリースされた SQL Server 2008 R2 ビルド

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

回避策

この問題を回避するには、完全な JOIN句ではなく、完全な MERGE join句を使用します。たとえば、"Symptoms" セクションで説明されているクエリを変更すると、クエリは次のようになります。

SELECT * FROM tablename CROSS APPLY (    SELECT * FROM        (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'New') s1     FULL MERGE JOIN         (SELECT * FROM [dbo].[func_GetTableFromXml](xmlColumn) WHERE nodeParentName = 'Old') s2     ON s1.nodeName = s2.nodeName    ) s 

詳細情報

クロス適用句の使い方の詳細については、次の Microsoft TechNet web サイトを参照してください。

クロス適用句の使用方法に関する一般的な情報

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×