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...