現象
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 の最新の累積的な更新プログラムを確認してください。
- SQL Server 2012 SP2 の最新の累積的な更新プログラム
- SQL Server 2012 SP1 の最新の累積的な更新プログラム
- SQL Server 2008 R2 SP2 の最新の累積的な更新プログラム
- SQL Server 2014 の最新の累積的な更新プログラム
- SQL Server 2008 SP3 の最新の累積的な更新プログラム
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。