DBCC CHECKDB Dépannage de la corruption de la base de données SQL Server
Summary: DBCC CHECKDB, DBCC, réparation de base de données, base de données, base de données corrompue
Symptoms
Cause
Resolution
DBCC est un outil natif de Microsoft SQL Server conçu pour vérifier et réparer les bases de données Microsoft SQL Server. Cet article traite de la commande DBCC CHECKDB et des options de vérification de l’intégrité logique et physique de la base de données.
DBCC CHECKDB (Transact-SQL) :
Étapes d’exécution de DBCC CHECKDB :
- Ouvrez SQL Server Studio Management
- Ouvrir une fenêtre de requête
- Saisissez « DBCC CHECKDB (Nom de la base de données) »

Options de réparation DBCC
- REPAIR_REBUILD : La commande ci-dessous place la base de données en mode permettant la réparation.
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
Copiez la commande ci-dessous et collez-la dans la session de requête en entrant le nom de base de données correct :
--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 : La commande ci-dessous effectue la réparation de la base de données et peut entraîner une perte de données pour terminer le processus de réparation.
--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
Copiez la commande ci-dessous et collez-la dans la session de requête en entrant le nom de base de données correct :
Les commandes ci-dessous sont utiles si l’espace disque physique de la base de données est faible.
--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
Copiez la commande ci-dessous et collez-la dans la session de requête en entrant le nom de base de données correct :
--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
Copiez la commande ci-dessous, collez-la dans la session de requête et saisissez le nom de base de données approprié :
--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
