Sql Server數據庫修復的命令


當數據庫質疑或是有的無法完成讀取時可以嘗試這些修復命令。

數據庫單用戶和多用戶之間切換

命令如下:

alter database 數據庫名 set Single_user  --單用戶

alter database 數據庫名 set multi_user   --多用戶

或者

sp_dboption 數據庫名,"single user",true  --單用戶

sp_dboption 數據庫名,"single user",false  --多用戶

 

1. DBCC CHECKDB 

  重啟服務器后,在沒有進行任何操作的情況下,在SQL查詢分析器中執行以下SQL進行數據庫的修復,修復數據庫存在的一致性錯誤與分配錯誤。

use master 

declare @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'--將目標數據庫置為多用戶狀態

然后執行 DBCC CHECKDB('需要修復的數據庫實體的名稱') 檢查數據庫是否仍舊存在錯誤。注意:修復后可能會造成部分數據的丟失。

 

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'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM