用DBCC 批量檢查資料庫表(SQL資料庫)

SQL資料庫因為某些原因造成庫或者表損壞,需要用DBCC檢查,此方法用游標的方式可以批量檢查資料庫中的用戶表,以下!

工具/原料

SQL 資料庫查詢分析器。
WIIN2003 WIN2008 WIN2012

方法/步驟

複製以下語句到查詢分析器,設置好自己的資料庫名字和登錄名。

exec sp_dboption '你的資料庫名','SINGLE','TRUE'

--運行DBCC CHECKTABLE時,必須是單用戶模式。設置資料庫訪問方式為單用戶。

DECLARE NYCURSOR CURSOR

--聲明游標

FOR

SELECT [NAME]

FROM SYSOBJECTS

WHERE XTYPE IN ('U') AND STATUS>0

OPEN NYCURSOR

DECLARE @TAB_NAME  VARCHAR(1000)

FETCH NEXT FROM NYCURSOR INTO @TAB_NAME

WHILE @@FETCH_STATUS=0

BEGIN

SELECT @TAB_NAME='你的資料庫登錄名.'+@TAB_NAME

dbcc checkTABLE (@TAB_NAME,repair_rebuild)

--DBCC CHECKTABLE運行

FETCH NEXT FROM NYCURSOR INTO @TAB_NAME

END

CLOSE NYCURSOR

DEALLOCATE NYCURSOR

exec sp_dboption '你的資料庫名','SINGLE','FALSE'

--關閉單用戶模式。

如果參數repair_rebuild,不能完成修復,可以替換為repair_allow_data_loss,進行允許數據丟失的方式進行修復。

注意事項

資料庫斷電造成的一致性錯誤一般都可以修復
運行之前,請做好資料庫備份。

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場