1. DBCC CHECKDB
重啟服務(wù)器后,在沒有進(jìn)行任何操作的情況下,在SQL查詢分析器中執(zhí)行以下SQL進(jìn)行數(shù)據(jù)庫的修復(fù),修復(fù)數(shù)據(jù)庫存在的一致性錯誤與分配錯誤。
use master
declare @databasename varchar(255)
set @databasename=’需要修復(fù)的數(shù)據(jù)庫實體的名稱’
exec sp_dboption @databasename, N’single’, N’true’ –將目標(biāo)數(shù)據(jù)庫置為單用戶狀態(tài)
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N’single’, N’false’–將目標(biāo)數(shù)據(jù)庫置為多用戶狀態(tài)
然后執(zhí)行 SQL Server數(shù)據(jù)修復(fù)命令DBCC CHECKDB(’需要修復(fù)的數(shù)據(jù)庫實體的名稱’) 檢查數(shù)據(jù)庫是否仍舊存在錯誤。注意:修復(fù)后可能會造成部分?jǐn)?shù)據(jù)的丟失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 檢查仍舊存在錯誤,可以使用DBCC CHECKTABLE來修復(fù)。
use 需要修復(fù)的數(shù)據(jù)庫實體的名稱
declare @dbname varchar(255)
set @dbname=’需要修復(fù)的數(shù)據(jù)庫實體的名稱’
exec sp_dboption @dbname,’single user’,'true’
dbcc checktable(’需要修復(fù)的數(shù)據(jù)表的名稱’,REPAIR_ALLOW_DATA_LOSS)
dbcc checktable(’需要修復(fù)的數(shù)據(jù)表的名稱’,REPAIR_REBUILD)
——把’ 需要修復(fù)的數(shù)據(jù)表的名稱’更改為執(zhí)行SQL Server數(shù)據(jù)修復(fù)命令DBCC CHECKDB時報錯的數(shù)據(jù)表的名稱exec sp_dboption @dbname,’single user’,'false’
3. 其他的一些常用的修復(fù)命令
DBCC DBREINDEX 重建指定數(shù)據(jù)庫中表的一個或多個索引
用法:DBCC DBREINDEX (表名,’’) 修復(fù)此表所有的索引。
上述的相關(guān)內(nèi)容就是對SQL Server數(shù)據(jù)修復(fù)命令DBCC的描述,希望會給你帶來一些幫助在此方面。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |