DBCC CHECKDB 疑難解答 SQL 伺服器資料庫損毀
Summary: DBCC CHECKDB、DBCC、資料庫修復、資料庫、資料庫損毀
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
問題:MS SQL Server 資料庫損毀,需要修復才能維持穩定性和一致性。
Cause
MS SQL Server 資料庫、記錄和應用程式檔案的軟體損毀。
Resolution
DBCC 是 Microsoft SQL Server 的原生工具,旨在檢查和修復 Microsoft SQL Server 資料庫。 本文探討 DBCC CHECKDB 命令和檢查資料庫邏輯和實體完整性的選項。
DBCC CHECKDB (Transact-SQL):
執行 DBCC CHECKDB 的步驟:
- 開啟 SQL Server Studio 管理
- 開啟查詢視窗
- 在「DBCC CHECKDB (資料庫名稱)」中輸入

4.檢查查詢結果底部附近,查看分配和一致性錯誤。
5. 如果結果中出現分配和一致性錯誤,資料庫應從備份還原,或使用 DBCC CHECKDB 執行資料庫修復。
DBCC 修復選項
- REPAIR_REBUILD:以下命令可讓資料庫處於可修復的模式。
USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) GO ALTER DATABASE TSQL2012 SET MULTI_USER; GO
複製以下命令,然後貼至輸入正確資料庫名稱的查詢工作階段:
--Command below performs a Database repair not allowing Data loss USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012,REPAIR_REBUILD) GO ALTER DATABASE TSQL2012 SET MULTI_USER; GO
2.REPAIR_ALLOW_DATA_LOSS:以下命令可執行資料庫修復,並可能導致數據遺失,無法完成修復程式。
--Command below performs a database repair that may result in data loss, --replace TSQL2012 with the database name of database being repaired USE Master GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO DBCC CHECKDB (TSQL2012, REPAIR_ALLOW_DATA_LOSS) GO ALTERDATABASE TSQL2012 SET MULTI_USER GO
複製以下命令,然後貼至輸入正確資料庫名稱的查詢工作階段:
如果資料庫實體磁碟空間執行不足,以下命令會很有用。
--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH ESTIMATEONLY; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO
複製以下命令,然後貼至輸入正確資料庫名稱的查詢工作階段:
--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH ESTIMATEONLY; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO
--Command below will run DBCC CHECKDB without using TEMDB and creating a DB --snapshot. When not using TEMPDB with a DB snapshot all data will be checked in -- the live database not not a database snapshot. USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH TABLOCK; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO
複製以下命令並貼至查詢工作階段,並輸入正確的資料庫名稱:
--Command below will run DBCC CHECKDB without using TEMPDB and creating a DB --snapshot. When not using TEMPDB with a DB snapshot all data will be checked in ---the live database not a database snapshot. USE Master; GO ALTER DATABASE TSQL2012 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO DBCC CHECKDB (TSQL2012, REPAIR_REBUILD) WITH TABLOCK; GO ALTER DATABASE TSQL2012 SET MULTI_USER GO

Affected Products
Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft SoftwareArticle Properties
Article Number: 000134529
Article Type: Solution
Last Modified: 18 Mar 2025
Version: 5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.