FIX: SQL Server 2005 でビューに対するクエリを実行するときエラー メッセージ:「バッチの実行中にエラーが発生しました」

Bug #: 50002350 (SQL 修正プログラム)
マイクロソフトでは、1 つのダウンロード可能なファイルとして Microsoft SQL Server 2005 の修正プログラムを配布します。修正プログラムは累積的であるため、新しいリリースごとにすべての修正プログラムが含まれていて、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。

現象

以下の事例で説明します。、Microsoft SQL Server 2005 では、 view_metadata属性が有効にするビューを作成します。次に、ビューに対してクエリを実行します。このシナリオでは、次のエラー メッセージが表示される場合があります。
バッチの実行中にエラーが発生しました。エラー メッセージ: 内部接続の致命的なエラーです。
この問題は、次の条件のいずれかが true の場合に発生する可能性があります。
  • NO_BROWSETABLEオプションを設定するには ON にします。
  • クエリに FOR BROWSE 句を指定するとします。

解決策

この問題に対する修正は、累積的な更新 6 で初めてリリースされました。この累積的な更新プログラム パッケージを SQL Server 2005 Service Pack 2 の入手方法に関する詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。
946608関数形式は、SQL Server 2005 Service Pack 2 の 6 のパッケージを更新します。
注: ビルドは累積的であるため、各新しい修正プログラム リリースには、すべての修正プログラムが含まれていて、以前の SQL Server 2005 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料をご参照ください。
937137 SQL Server 2005 ビルド SQL Server 2005 Service Pack 2 がリリースされた後にリリースされました。
特定の SQL Server のサービス パックには、Microsoft SQL Server 2005 の修正プログラムが作成されます。SQL Server 2005 Service Pack 2 のインストールには、SQL Server 2005 Service Pack 2 修正プログラムを適用する必要があります。既定では、SQL Server のサービス パックで提供されているすべての修正プログラムは次の SQL Server のサービス パックに含まれます。

回避策

この問題を回避するには、以下のいずれかの方法を使用します。
  • ビューのview_metadata属性を使わないでください。
  • 静的クライアント側カーソルを使用して、アプリケーションでクエリを実行します。
  • ストアド プロシージャ内の最初の行でNO_BROWSETABLEオプションを OFF に設定します。

状況

マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。

詳細

6 の累積的な更新パッケージをインストールした後必要がありますも有効にするトレース フラグこの修正プログラムを実装するのには 210。起動時のパラメーターとして、トレース フラグを追加することをお勧めします。ただしにすることも、トレース フラグを動的に次のコマンドを実行することによって。
DBCC TRACEON(210,-1) Go DBCC FREEPROCCACHE Go
さらに、問題が影響を受けるすべてのキャッシュされたプランは再コンパイルし、トレース フラグ オプションを使用して再読み込みできるように、キャッシュを解放する必要があります。

についてどのようなファイルが変更されると、このマイクロソフト サポート技術情報資料に記載されている修正プログラムを含む累積的な更新パッケージを適用するすべての前提条件に関する情報をマイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックしてください。
946608関数形式は、SQL Server 2005 Service Pack 2 の 6 のパッケージを更新します。

問題を再現する手順を実行します。

  1. SQL Server Management Studio を起動し、新しいクエリを作成します。
  2. 以下の Transact SQL ステートメントを実行します。
    CREATE DATABASE db1GO

    USE db1
    GO

    CREATE TABLE t1 (b INT PRIMARY KEY, B INT)
    CREATE TABLE t2 (b INT PRIMARY KEY)
    GO

    INSERT INTO t1 VALUES (1,NULL)
    INSERT INTO t1 VALUES (2,NULL)
    GO

    CREATE VIEW v2
    WITH VIEW_METADATA
    AS
    SELECT * FROM t2
    GO

    SET NO_BROWSETABLE ON
    SELECT t1.b
    FROM t1 LEFT JOIN v2 ON t1.b = v2.b
    GO

関連情報

ビルド後は、利用可能な SQL Server の Service Pack 2 の一覧については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。
937137 SQL Server 2005 ビルド SQL Server 2005 Service Pack 2 がリリースされた後にリリースされました。
SQL Server の増分サービス モデルについては、次の記事番号をクリックして、マイクロソフト サポート技術情報の記事を参照してください。
935897 「の増分サービス モデルは、SQL Server チームは、報告された問題に対する修正プログラムを提供
SQL Server 2005 Service Pack 2 を入手する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。
913089 SQL Server 2005 の最新の service pack の入手方法
新機能と SQL Server 2005 Service Pack 2 で改善する方法の詳細については、次のマイクロソフト Web サイトを参照してください。SQL Server の更新プログラムの名前付けスキーマの詳細については、マイクロソフト サポート技術情報の資料を参照するのには次の資料番号をクリックします。
更新プログラム パッケージの新しい名前付けスキーマを Microsoft SQL Server ソフトウェアの822499
ソフトウェア更新プログラムの用語の詳細については、次の文書番号をクリックして、マイクロソフト サポート技術情報の資料を参照してください。
824684マイクロソフトのソフトウェア更新プログラムを記述するために使用される一般的な用語説明
プロパティ

文書番号:945892 - 最終更新日: 2017/02/02 - リビジョン: 1

フィードバック