首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

用 T-SQL 指令完成 SQL Server 資料庫修復 (DBCC CHECKDB)

     編輯:關於SqlServer

資料庫因斷電、硬體故障導致索引損壞、查詢緩慢或資料遺失時,可用 T-SQL 執行修復。操作前必須斷開所有使用者連線。

修復腳本

USE MASTER; GO

-- 1. 設為單一使用者模式,阻塞新連線
EXEC sp_dboption 'YourDatabase', 'single user', 'true'; GO

-- 2. 執行資料庫層級修復 (重建索引、修復配頁)
DBCC CHECKDB('YourDatabase', REPAIR_REBUILD); GO

-- 3. 對每個資料表執行修復
USE YourDatabase; GO
EXEC sp_msforeachtable 'DBCC CHECKTABLE(''?'', REPAIR_REBUILD)'; GO

-- 4. 恢復多使用者模式
USE MASTER; GO
EXEC sp_dboption 'YourDatabase', 'single user', 'false'; GO

參數說明

  • REPAIR_REBUILD:執行無資料遺失修復 (重建索引、修復頁面);較安全。
  • REPAIR_ALLOW_DATA_LOSS:允許資料遺失的極端修復 (刪除損壞頁、資料列);最後手段,務必先完整備份。
  • sp_msforeachtable:未文件化預存程序,遍歷所有使用者資料表。

建議流程

  1. 先執行 DBCC CHECKDB('YourDatabase') NO_INFOMSGS 僅檢查不修復,評估損壞程度。
  2. 若僅索引損壞,REPAIR_REBUILD 通常足夠。
  3. 若系統表損壞或嚴重不一致,可能需還原備份或尋求專業復原。
  4. 修復後務必重建/重組索引、更新統計資料。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved