DBCC CHECKDB 資料庫或表修復

2022-04-05 09:34:04 字數 1219 閱讀 1845

ms sql server 提供了很多資料庫修復的命令,當資料庫質疑或是有的無法完成讀取時可以嘗試這些修復命令。

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' 

3. 其他的一些常用的修復命令 

dbcc dbreindex 重建指定資料庫中表的乙個或多個索引 

用法:dbcc dbreindex (表名,』』) 修復此表所有的索引。 

===================================

DBCC CHECKDB 資料庫或表修復

ms sql server 提供了很多資料庫修復的命令,當資料庫質疑或是有的無法完成讀取時可以嘗試這些修復命令。1.dbcc checkdb 重啟伺服器後,在沒有進行任何操作的情況下,在sql查詢分析器中執行以下sql進行資料庫的修復,修復資料庫存在的一致性錯誤與分配錯誤。use master de...

Sqlite如果插入或更新資料庫

我們經常會用到如果資料庫存在則更新,如果不存在則新增 sql一般寫為 if exists select from table where tableid 1 insert into table else update table 但是sqlite裡沒有if exists這種寫法,它用的是一種更簡單的...

資料庫或表編碼方式修改

在開發過程中,有很多人在建立資料庫時不給指定編碼方式,導致在表中插入中文報錯,這時需要修改資料庫編碼或者表的編碼方式,下面是具體怎麼修改的命令,非常好用 1 檢視當前資料庫編碼格式 show variables like character set database 2 檢視資料表的編碼格式 sho...