萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> SQL SERVER修復系統表錯誤不匹配的問題

SQL SERVER修復系統表錯誤不匹配的問題

   修復系統表(表錯誤- 對象 ID 2。text、ntext 或 image 節點(位於頁 (1-875),槽 0,文本 ID 177078272)與該節點位於頁 (1-500),槽 14 處的引用不匹配)

  修復數據庫,應該是一個再熟悉不過的“陌生”東東了。以往修復就使用一般的修復語句即可,今天遇到一個頑固不化的錯誤,NND,

  報錯信息如下:

  服務器: 消息 8929,級別 16,狀態 1,行 1

  對象 ID 2: 在文本 ID 177078272 中發現錯誤,該文本的所有者是由 RID = (1:627:1) id = 1899153811 and indid = 10 標識的數據記錄。

  服務器: 消息 8961,級別 16,狀態 1,行 1

  表錯誤: 對象 ID 2。text、ntext 或 image 節點(位於頁 (1:875),槽 0,文本 ID 177078272)與該節點位於頁 (1:500),槽 14 處的引用不匹配。

  'YINYI' 的 DBCC 結果。

  'sysobjects' 的 DBCC 結果。

  對象 'sysobjects' 有 419 行,這些行位於 7 頁中。

  'sysindexes' 的 DBCC 結果。

  對象 'sysindexes' 有 451 行,這些行位於 22 頁中。

  CHECKDB 發現了 0 個分配錯誤和 2 個一致性錯誤(在表 'sysindexes' 中,該表的對象 ID 為 2)。

  'syscolumns' 的 DBCC 結果。

  CHECKDB 發現了 0 個分配錯誤和 2 個一致性錯誤(在數據庫 'YINYI' 中)。

  DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。

  這個是已經經過修復後仍然存在的問題,因為提示的是系統表sysobjects表存在問題,且有提示了RID及ID,我將此條數據查詢出來,交核對了同類型的數據庫,也就一個欄位不一樣,且表示的是一個所影響的行數,其它並無相應的差別。本來打算放棄的,不過後又嘗試著將一個經常會使用到的一個表的數據全部清除(truncate),再進行CHECKDB則不再出現錯誤。然後將此表中的數據先查詢出來放到臨時表,再清掉所有的數據,再從臨時表中INSERT進來,此時再來CHECKDB,

  CHECKDB 發現了 0 個分配錯誤和0 個一致性錯誤(在數據庫 'YINYI' 中)。

  DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。

  大功告成,此現象說明了其實CHECKDB出來若存在系統表有問題的情況下,我們的系統不會那麼容易壞的。你首先需要檢查的是你平時會用到的表,即使是CHECKTABLE也不一定會出錯,只能根據你軟件中在哪一個點兒會彈錯,分析用到的表,進行依次的排除。

  此篇文章寫到這裡希望遇到類似“表錯誤: 對象 ID 2。text、ntext 或 image 節點(位於頁 (1:875),槽 0,文本 ID 177078272)與該節點位於頁 (1:500),槽 14 處的引用不匹配”問題的朋友們細心點兒,希望對大家有幫助!

copyright © 萬盛學電腦網 all rights reserved