現象
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 の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。