DBCC CHECKCATALOG (Transact-SQL)

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.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

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

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. Si vous ne définissez pas cet argument ou que vous lui attribuez la valeur 0, la base de données active 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'informations.

Notes

Une fois la commande DBCC CATALOG terminée, un message est enregistré dans le journal des erreurs SQL Server. Si la commande DBCC s'exécute correctement, 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, 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.

État

Description

0

L'erreur numéro 8930 s'est déclenchée. Ceci indique une altération des métadonnées qui a provoqué l'arrêt de la commande DBCC.

1

L'erreur numéro 8967 s'est déclenché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 altération 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 système. DBCC CHECKCATALOG utilise une capture instantanée de base de données interne pour fournir la cohérence transactionnelle nécessaire à la réalisation de ces vérifications. Pour plus d'informations, consultez Tailles des fichiers fragmentés dans les captures instantanées de bases de données et la section «Utilisation de la capture instantanée de base de données interne de DBCC» de DBCC (Transact-SQL).

Si une capture instantanée ne peut pas être créée, 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.

[!REMARQUE]

L'exécution de DBCC CHECKCATALOG sur tempdb n'effectue aucune vérification. En effet, pour des raisons liées aux performances, les captures instantanées de base de données ne sont pas disponibles sur tempdb. Cela signifie que la cohérence transactionnelle requise ne peut pas être obtenue. Recyclez le serveur pour résoudre les problèmes liés aux métadonnées de tempdb.

[!REMARQUE]

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 AdventureWorks est spécifié en tant que 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'adhésion au rôle serveur fixe sysadmin ou au rôle de base de données fixe db_owner.

Exemple

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

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