Partage via


DBCC CHECKCATALOG (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Vérifie la cohérence du catalogue dans la base de données spécifiée. La base de données doit être en ligne.

Conventions de la syntaxe Transact-SQL

Syntaxe

DBCC CHECKCATALOG
[
    (
    database_name | database_id | 0
    )
]
    [ WITH NO_INFOMSGS ]

Notes

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.

Arguments

database_name | database_id | 0

Nom ou ID de la base de données dont vous souhaitez vérifier la cohérence du catalogue. En l'absence de spécification, ou si 0 est spécifié, la base de données actuelle est utilisée. Les noms de base de données doivent suivre les règles applicables aux identificateurs.

WITH NO_INFOMSGS

Supprime tous les messages d'information.

Notes

Une fois la commande DBCC CHECKCATALOG terminée, un message est écrit dans le journal des erreurs SQL Server. Si la commande DBCC est correctement exécutée, le message indique que l'exécution a réussi, ainsi que la durée d'exécution de la commande. Si la commande DBCC est interrompue avant la fin de la vérification en raison d’une erreur, le message indique que la commande n’a pas abouti et précise une valeur d’état ainsi que la durée d’exécution de la commande. Le tableau suivant répertorie et décrit les valeurs d'état pouvant être incluses dans le message.

State Description
0 Erreur numéro 8930 générée. Ceci indique une corruption des métadonnées qui a provoqué l'arrêt de la commande DBCC.
1 Erreur numéro 8967 générée. Une erreur DBCC interne s'est produite.
2 Une erreur s'est produite lors de la réparation de la base de données en mode urgence.
3 Ceci indique une corruption des métadonnées qui a provoqué l'arrêt de la commande DBCC.
4 Une assertion ou une violation d'accès a été détectée.
5 Une erreur inconnue s'est produite et a arrêté la commande DBCC.

DBCC CHECKCATALOG effectue différentes vérifications de cohérence entre les tables de métadonnées du système. DBCC CHECKCATALOG utilise un instantané de base de données interne pour assurer la cohérence transactionnelle nécessaire pour effectuer ces vérifications. Pour plus d’informations, consultez Voir la taille du fichier partiellement alloué d’un instantané de base de données (Transact-SQL) et la section Utilisation d’un instantané de base de données interne DBCC de DBCC (Transact-SQL).

Si un instantané ne peut pas être créé, DBCC CHECKCATALOG acquiert un verrou de base de données exclusif pour obtenir la cohérence requise. Si des incohérences sont détectées, elles ne peuvent pas être réparées et la base de données doit être restaurée à partir d’une sauvegarde.

Notes

L’exécution de DBCC CHECKCATALOG sur tempdb n’effectue aucune vérification. La raison en est que, pour des raisons de performances, les instantanés de base de données ne sont pas disponibles sur tempdb. Cela signifie que la cohérence transactionnelle requise ne peut pas être obtenue. Redémarrez le service Moteur de base de données pour résoudre les problèmes de métadonnées de tempdb.

Notes

DBCC CHECKCATALOG ne vérifie pas les données FILESTREAM. FILESTREAM stocke les objets BLOB dans le système de fichiers.

En outre, DBCC CHECKCATALOG est exécuté dans le cadre de DBCC CHECKDB.

Jeux de résultats

Si aucune base de données n’est spécifiée, DBCC CHECKCATALOG retourne :

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Si AdventureWorks2022 est spécifié comme nom de base de données, DBCC CHECKCATALOG retourne :

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Autorisations

Nécessite l’appartenance au rôle serveur fixe sysadmin ou au rôle de base de données fixe db_owner.

Exemples

L'exemple suivant vérifie l'intégrité du catalogue dans la base de données active et dans la base de données AdventureWorks2022.

-- Check the current database.
DBCC CHECKCATALOG;
GO
-- Check the AdventureWorks database.
DBCC CHECKCATALOG (AdventureWorks2022);
GO

Voir aussi