今天北斗客服在檢測客戶網站時發現其中一個客戶的SQL Server2005數據表顯示為異常,在網上查詢了很多方案均未修復,例如:
--設置數據庫緊急狀態
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
--設置數據庫為緊急模式
update sysdatabases set status=-32768 where dbid=DB_ID('Procurement')
--重建數據庫日志文件
dbcc rebuild_log('Procurement','D:\Procurement_log.ldf')
--驗證數據庫一致性(可省略)
dbcc checkdb('Procurement')
--設置數據庫為正常狀態
sp_dboption 'Procurement','dbo use only','false'
--*后一步,我們要將步驟E中設置的“允許對系統目錄直接修改”一項恢復
sp_configure 'allow updates',0
go
reconfigure with override
go
結果發現,無效。以上方案只使用于SQL Server2000。經過我們一個上午的研究和測試測出終極解決方案,只需要在數據庫查詢中執行以下4行代碼即可完美解決:
ALTER DATABASE 你的數據庫名 SET EMERGRNCY
ALTER DATABASE 你的數據庫名 SET SINGLE_USER
DBCC CheckDB (你的數據庫名,REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE 你的數據庫名 SET MULTI_USER