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.
Conventions 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 |
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 système. DBCC CHECKCATALOG utilise un instantané 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 Afficher la taille du fichier partiellement alloué d'un instantané de base de données (Transact-SQL) et la section «Utilisation de l'instantané de base de données interne de 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.
[!REMARQUE]
L'exécution de DBCC CHECKCATALOG sur tempdb n'effectue aucune vérification. En effet, pour des raisons liées aux 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. 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 AdventureWorks2012 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 AdventureWorks2012 database.
DBCC CHECKCATALOG (AdventureWorks2012);
GO