徵狀
假設您在 Microsoft SQL Server 2012 中查詢 tempdb.sys.allocation_units 資料表。 當您在查詢中使用 NOLOCK 提示,或查詢位於 [讀取] UNCOMMITED 交易隔離層級時,您會收到下列間歇性608錯誤訊息:
錯誤:608嚴重性: 16 State:1找不到 [資料庫 <資料庫名稱> 中的 [分區 <識別碼]> 的目錄專案。 中繼資料不一致。 執行 DBCC CHECKDB 來檢查中繼資料是否損毀
注意: DBCC CHECKDB命令不會顯示任何已損壞的資料庫跡象。
原因
這個問題是由陳舊中繼資料的已更新讀取所導致。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2012 SP2 累積更新4 /en-us/help/3007556
SQL Server 2012 SP1 累計更新13 /en-us/help/3002044
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。