KB2536225-FIX: SQL Server 2008 R2 または SQL Server 2008 で再コンパイルした後、CLR ストアドプロシージャが NULL を返す

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

現象

次のような状況で問題が発生します。

  • Microsoft SQL Server 2008 R2 または Microsoft SQL Server 2008 データベース用に、共通言語ランタイム (CLR) ストアドプロシージャを作成します。

  • CLR ストアドプロシージャは、Microsoft .NET Framework で整数値を返すパブリック静的メソッドとして実装されます。

  • CLR ストアドプロシージャを呼び出すアプリケーションを実行します。 CLR ストアドプロシージャは正しい値を返します。

  • CLR ストアドプロシージャの実行プランを再コンパイルする操作を実行します。注: ストアドプロシージャの実行プランの再コンパイル方法の詳細については、「詳細情報」セクションを参照してください。

  • アプリケーションをもう一度実行します。

このシナリオでは、CLR ストアドプロシージャが誤って NULL 値を返します。 また、この問題を回復するには、SQL Server サービスを再起動する必要があります。

解決方法

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

SQL Server 2008 Service Pack 3

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

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

2629969 SQL Server 2008 Service Pack 3 がリリースされた後にリリースされた SQL Server 2008 ビルド Microsoft SQL Server 2008 修正プログラムは、特定の SQL Server サービスパック用に作成されます。 Sql server 2008 Service pack 3 の修正プログラムは、SQL Server 2008 Service Pack 3 のインストールに適用する必要があります。 既定では、SQL Server service pack に含まれているすべての修正プログラムは、次の SQL Server service pack に含まれています。

SQL Server 2008 R2 Service Pack 1

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

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

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

SQL Server 2008 R2

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

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

981356 SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2 ビルド

詳細情報

ストアドプロシージャの実行プランを再コンパイルするには、次のいずれかの操作を実行します。

  • DBCCfree・キャッシュ文を実行します。

  • テーブルまたはビューに対して、次のいずれかのステートメントを実行します。

    • テーブルの変更

    • ビューの変更

  • インデックスを変更または削除する実行プランを実行します。

  • 実行プランによって使用される統計情報に対して 更新 操作を実行します。 注: 更新操作を実行するためにステートメントを実行するか、更新操作を自動的に実行することができます。

  • Sp_recompileステートメントを実行します。

  • キーに多くの変更を加えます。 たとえば、ステートメントで参照されているテーブルを更新するユーザーアカウントを使用して INSERT ステートメントまたは DELETE ステートメントを実行します。

  • トリガーを含むテーブルから、複数の行を挿入または削除します。

  • [ 再コンパイル ] オプションを使用して、ストアドプロシージャを実行します。

状態

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

関連情報

CLR ストアドプロシージャの詳細については、次の MSDN web サイトを参照してください。

CLR ストアドプロシージャに関する一般的な情報SQL Server の段階的サービスモデルの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

935897 SQL Server チームが段階的なサービスモデルを利用して、報告された問題の修正プログラムを提供するSQL Server 更新プログラムの名前付けスキーマの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

822499Microsoft SQL Server ソフトウェア更新プログラムパッケージの新しい名前付けスキーマソフトウェア更新プログラムの用語の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

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

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

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×