方法一
use masterdeclare @databasename varchar(255)
set @databasename='需要修復的資料庫實體的名稱'
exec sp_dboption @databasename, N'single', N'true' --將目標資料庫置為單使用者狀態
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N'single', N'false'--將目標資料庫置為多使用者狀態
檢查資料庫是否仍舊存在錯誤。注意:修復後可能會造成部分資料的丟失。
方法二
2. DBCC CHECKTABLE
如果DBCC CHECKDB 檢查仍舊存在錯誤,可以使用DBCC CHECKTABLE來修復。
use 需要修復的資料庫實體的名稱
declare @dbname varchar(255)
set @dbname='需要修復的資料庫的名稱'
exec sp_dboption @dbname,'single user','true'
dbcc checktable('需要修復的資料表的名稱',REPAIR_ALLOW_DATA_LOSS)
dbcc checktable('需要修復的資料表的名稱',REPAIR_REBUILD)
------把’ 需要修復的資料表的名稱’更改為執行DBCC CHECKDB時報錯的資料表的名稱
exec sp_dboption @dbname,'single user','false'
方法三
3. 其他的一些常用的修復命令DBCC DBREINDEX 重建指定資料庫中表的一個或多個索引
用法:
DBCC DBREINDEX (表名,’’) 修復此表所有的索引。
方法四
4.DBCC CHECKALLOC檢查指定資料庫的磁碟空間分配結構的一致性
沒有留言:
張貼留言