SQL Server數(shù)據(jù)修復(fù)命令DBCC的使用
此文章主要向大家講述的是SQL Server數(shù)據(jù)修復(fù)命令DBCC,MS Sql Server 提供了很多關(guān)于數(shù)據(jù)庫(kù)修復(fù)的命令,當(dāng)MS Sql Server 數(shù)據(jù)庫(kù)遭到質(zhì)疑或者是有的無(wú)法完成讀取時(shí)可以嘗試這些修復(fù)命令。
1. DBCC CHECKDB
重啟服務(wù)器后,在沒(méi)有進(jìn)行任何操作的情況下,在SQL查詢(xún)分析器中執(zhí)行以下SQL進(jìn)行數(shù)據(jù)庫(kù)的修復(fù),修復(fù)數(shù)據(jù)庫(kù)存在的一致性錯(cuò)誤與分配錯(cuò)誤。
use master
declare @databasename varchar(255)
set @databasename='需要修復(fù)的數(shù)據(jù)庫(kù)實(shí)體的名稱(chēng)'
exec sp_dboption @databasename, N'single', N'true' --將目標(biāo)數(shù)據(jù)庫(kù)置為單用戶(hù)狀態(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ù)庫(kù)置為多用戶(hù)狀態(tài)
然后執(zhí)行 SQL Server數(shù)據(jù)修復(fù)命令DBCC CHECKDB('需要修復(fù)的數(shù)據(jù)庫(kù)實(shí)體的名稱(chēng)') 檢查數(shù)據(jù)庫(kù)是否仍舊存在錯(cuò)誤。注意:修復(fù)后可能會(huì)造成部分?jǐn)?shù)據(jù)的丟失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 檢查仍舊存在錯(cuò)誤,可以使用DBCC CHECKTABLE來(lái)修復(fù)。
use 需要修復(fù)的數(shù)據(jù)庫(kù)實(shí)體的名稱(chēng)
declare @dbname varchar(255)
set @dbname='需要修復(fù)的數(shù)據(jù)庫(kù)實(shí)體的名稱(chēng)'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修復(fù)的數(shù)據(jù)表的名稱(chēng)',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修復(fù)的數(shù)據(jù)表的名稱(chēng)',REPAIR_REBUILD)
------把’ 需要修復(fù)的數(shù)據(jù)表的名稱(chēng)’更改為執(zhí)行SQL Server數(shù)據(jù)修復(fù)命令DBCC CHECKDB時(shí)報(bào)錯(cuò)的數(shù)據(jù)表的名稱(chēng)
exec sp_dboption @dbname,'single user','false'
3. 其他的一些常用的修復(fù)命令
DBCC DBREINDEX 重建指定數(shù)據(jù)庫(kù)中表的一個(gè)或多個(gè)索引
用法:DBCC DBREINDEX (表名,’’) 修復(fù)此表所有的索引。
上述的相關(guān)內(nèi)容就是對(duì)SQL Server數(shù)據(jù)修復(fù)命令DBCC的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】
- SQL Server group by的用法有很多
- SQL Server 2005常見(jiàn)錯(cuò)誤的破解方案
- 批量修改SQL Server 2005表構(gòu)架很簡(jiǎn)單!
- 對(duì)SQL Server 2005 BI的描述
- SQL Server日期函數(shù)之獲得一個(gè)月中的實(shí)際天數(shù)