KB2963408 - 修正: SQL Server で BLOB 列のデータに対してクエリを実行するとエラー 5180 が発生する

適用先
SQL Server 2008 Service Pack 3 SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 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 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

現象

Microsoft SQL Server 2008、SQL Server 2008 R2、SQL Server 2012、または SQL Server 2014 でバイナリ ラージ オブジェクト (BLOB) 列のデータに対してクエリを実行すると、次のエラーが表示される場合があります。

注

エラー: 5180 データベース 'tempdb' で無効なファイル ID 0 のためにファイル コントロール バンク (FCB) を開けませんでした。 ファイルの場所を確認します。 DBCC CHECKDB を実行します。

原因

この問題は、SQL Server が BLOB データを読み取るときに注意 (キャンセル) メッセージを適切に処理しないために発生します。 この問題は、内部のメモリ内 BLOB キャッシュが無効になっている場合にのみ発生します。 キャッシュが無効になると、キャッシュ データはデータベース tempdb に切り替わります。 その後、SQL Server はメモリ内キャッシュではなくデータベース tempdb から BLOB データを読み取ります。 BLOB データ サイズまたはサーバーのメモリ状態に応じて、内部のメモリ内 BLOB キャッシュは無効になります。

解決策

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

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

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

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

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

SQL Server 2008 SP3 の累積的な更新プログラム 17 /en-us/help/2958696

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

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

      

状態

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