標籤:style blog color 使用 os 資料 for 問題
使用以下SQL遍曆表,查詢是否有問題
DECLARE @table_name VARCHAR(50)DECLARE cursor_table CURSOR FOR SELECT name FROM sys.tablesOPEN cursor_tableFETCH next FROM cursor_table INTO @table_nameWHILE( @@FETCH_STATUS = 0 ) BEGIN DBCC checktable(@table_name) PRINT ‘ ‘ PRINT ‘=============================================‘ PRINT ‘ ‘ FETCH next FROM cursor_table INTO @table_name ENDCLOSE cursor_tableDEALLOCATE cursor_table
如果有問題,則會輸入類似下面的記錄:
rece_money的 DBCC 結果。訊息 8952,層級 16,狀態 1,第 1 行表錯誤: 表 ‘rece_money‘ (ID 507148852)。索引 ‘PK_rece_money‘ (ID 25)中的索引行與任何資料行都不匹配。可能是以下行的多餘或無效的鍵:訊息 8956,層級 16,狀態 1,第 1 行
... ... ... 表錯誤: 表 ‘rece_money‘ (ID 507148852)。索引 ‘PK_rece_money‘ (ID 25)中的索引行與任何資料行都不匹配。可能是以下行的多餘或無效的鍵:訊息 8956,層級 16,狀態 1,第 1 行索引行(1:171607:21)的值為(rece_money_id = ‘0000148773‘ and rece_money_type = ‘回款單‘ and HEAP RID = (1:34467:34)),指向由(HEAP RID = (1:34467:34))標識的資料行。對象 ‘rece_money‘ 的 3043 頁中有 57111 行。CHECKTABLE 在表 ‘rece_money‘ (物件識別碼 507148852)中發現 0 個分配錯誤和 19 個一致性錯誤。對於由 DBCC CHECKTABLE (zyhadm.dbo.rece_money)發現的錯誤,repair_rebuild 是最低的修複層級。DBCC 執行完畢。如果 DBCC 輸出了錯誤資訊,請與系統管理員聯絡。
通過語句修複
DBCC CHECKTABLE (rece_money,repair_rebuild)