症狀
當您在 Microsoft SQL Server 2008、SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014 中查詢二進位大型物件 (BLOB) 資料行資料時,可能會收到下列錯誤:
注意
錯誤:5180 無法開啟檔案控制銀行 (FCB) ,因為資料庫 'tempdb' 中的檔案識別碼 0 無效。 確認檔案位置。 執行 DBCC CHECKDB。
原因
發生此問題的原因是 SQL Server 在讀取 BLOB 資料時 (未適當地處理註) 取消訊息。 只有在停用內部記憶體內部 BLOB 快取時,才會發生此問題。 停用快取時,快取資料會切換到資料庫 tempdb。 之後,SQL Server 會從資料庫 tempdb 讀取 BLOB 資料,而不是記憶體內部快取。 視 BLOB 資料大小或伺服器記憶體狀況而定,會停用內部記憶體內部 BLOB 快取。
解決方式
此問題已先在下列 SQL Server 累積更新中修正。
SQL Server 2012 SP2 的累積更新 2 /zh-tw/help/2983175
SQL Server 2012 SP1 的累積更新 11 /zh-tw/help/2975396
SQL Server 2008 R2 SP2 的累積更新 13 /zh-tw/help/2967540
2014 年 SQL Server 累積更新 2 /zh-tw/help/2967546
適用於 SQL Server 2008 SP3 的累積更新 17 /zh-tw/help/2958696
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
- 適用於 SQL Server 2012 SP2 的最新累積更新
- 適用於 SQL Server 2012 SP1 的最新累積更新
- 適用於 SQL Server 2008 R2 SP2 的最新累積更新
- 適用於 SQL Server 2014 的最新累積更新
- SQL Server 2008 SP3 的最新累積更新
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。