sqlserver2008中,dbcc checkdb資料庫提示多個一致性錯誤,如下圖:

檢查是資料表[UFTmpTable_33565914_5231678149313212099] 出現了問題,不知道是怎么生成的,其實這個表是無用的表,試圖洗掉它提示表不存在或無權限;
檢查表sys.objects、sys.indexes,發現sys.objects中有資料,但sys.indexes中無資料,所以出現一致性錯誤。
試圖從sysobjects中洗掉記錄,提示”不允許對系統目錄進行即席更新。”

網上搜了下,大概都是說sql2000以上版本都不支持修改系統表,實在不知道怎么處理了,請大神們幫忙看看!
uj5u.com熱心網友回復:
這看起來不是一個表,而一個統計資訊,可以考慮把這個表上索引和統計資訊全洗掉,然后重建索引。注意備份
uj5u.com熱心網友回復:
確實是一個表,我在資源管理器中可以查到這個表:
我試著查了這表的統計資訊,查不到,索引、欄位都查不到,只有在sysobjects表中有一條記錄:

我就想把這條記錄洗掉 ,應該就不會出現一致性錯誤了吧
uj5u.com熱心網友回復:
alter database DbName set single_user with rollback immediatego
dbcc checkdb(DbName,repair_allow_data_loss)
go
alter database DbName set multi_user
go
--------------------------------------------------
Sql2000以上也可以修改系統表,只是要用DAC登入
還是建議用dbcc去修就好
uj5u.com熱心網友回復:
dbcc checkdb(DbName,repair_allow_data_loss)就是這樣修復的,不行,報錯,上面就是修復時報的錯誤
uj5u.com熱心網友回復:
如果嘗試自動修復不了,建議新建個空資料庫, 把有用資料匯入新資料庫, 然后2個資料庫名字互換.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/76286.html
標籤:疑難問題
