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 無法開啟檔案控制銀行 (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 的最新累積更新:

      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。