如果對(duì)數(shù)據(jù)操作時(shí),提示循環(huán)冗余等錯(cuò)誤,可以執(zhí)行一下 dbcc checkdb 檢查表的邏輯性,如果出現(xiàn)類似的提示:
消息 8966,級(jí)別 16,狀態(tài) 2,第 1 行
無(wú)法使用閂鎖類型 SH 讀取并閂鎖頁(yè) (1:5782420)。23(數(shù)據(jù)錯(cuò)誤(循環(huán)冗余檢查)。) 失敗。
消息 2533,級(jí)別 16,狀態(tài) 1,第 1 行
表錯(cuò)誤: 看不到分配給對(duì)象 ID 174883940,索引 ID 0,分區(qū) ID 11461193891840,分配單元 ID 72057595680129024 (類型為 In-row data)的頁(yè) (1:7473486)。該頁(yè)可能無(wú)效,或者頁(yè)頭中可能包含錯(cuò)誤的分配單元 ID。
這說(shuō)明數(shù)據(jù)庫(kù)中有表(174883940)有損壞,先將數(shù)據(jù)庫(kù)改成單用戶狀態(tài)exec sp_dboption enjoy_store, N'single', N'true',然后執(zhí)行可以執(zhí)行DBCC checkdb (enjoy_store,REPAIR_ALLOW_DATA_LOSS)進(jìn)行修改,或者通過(guò)表的ID找到具體的表名稱,對(duì)表進(jìn)行單個(gè)修復(fù),如:dbcc checktable ('tbs_d_gds',REPAIR_REBUILD),再將數(shù)據(jù)庫(kù)狀態(tài)改回來(lái)exec sp_dboption enjoy_store, N'single', N'false'
查看錯(cuò)誤表名稱可以用系統(tǒng)索引
select * from sysobjects where id='174883940'