Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
Détails
| Élément | Valeur |
|---|---|
| Nom du produit | Serveur SQL |
| ID de l’événement | 8992 |
| Source de l’événement | MSSQLSERVER |
| Composant | SQLEngine |
| Nom symbolique | DBCC3_CHECK_CATALOG |
| Texte du message | Contrôle du message du catalogue ERROR, niveau LEVEL, état STATE : MESSAGE. |
Remarque
Le message d’erreur 8992 fait référence à un autre message spécifique (numéro compris entre 3851 et 3858) portant sur l’incohérence réelle.
Explication
DBCC CHECKCATALOG ou DBCC CHECKDB trouvé une incohérence dans les tables de métadonnées système pour l’objet spécifié. Autrement dit, il existe une incohérence entre l’ID d’objet enregistré et l’objet spécifié dans le message d’erreur.
Cette erreur peut se produire quand une ou plusieurs tables système ont été mises à jour manuellement de manière à créer une incohérence dans les métadonnées système. Par exemple, vous pouvez supprimer manuellement un objet de la sysobjects table sans supprimer les lignes associées dans d’autres tables telles que sysindexes et syscolumns.
Cette erreur peut se produire lors de l’exécution DBCC CHECKDB sur une base de données mise à niveau de SQL Server 2000 (8.x) vers une version ultérieure de SQL Server. Dans SQL Server 2000 (8.x), DBCC CHECKDB n’incluait DBCC CHECKCATALOG pas de fonctionnalité. Par conséquent, l’erreur n’est pas interceptée avant la mise à niveau, sauf si DBCC CHECKCATALOG elle est spécifiquement exécutée sur la base de données dans SQL Server 2000 (8.x).
Vous pouvez voir l’une des erreurs suivantes avec l’erreur 8992 :
| ID de message | Texte du message |
|---|---|
3851 |
An invalid row (%ls) was found in the system table sys.%ls%ls. |
3852 |
Row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3853 |
Attribute (%ls) of row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3854 |
Attribute (%ls) of row (%ls) in sys.%ls%ls has a matching row (%ls) in sys.%ls%ls that is invalid. |
3855 |
Attribute (%ls) exists without a row (%ls) in sys.%ls%ls. |
3856 |
Attribute (%ls) exists but should not for row (%ls) in sys.%ls%ls. |
3857 |
The attribute (%ls) is required but is missing for row (%ls) in sys.%ls%ls. |
3858 |
The attribute (%ls) of row (%ls) in sys.%ls%ls has an invalid value. |
Action de l’utilisateur
Supprimer et recréer l’objet spécifié
Si possible, supprimez et recréez l'objet spécifié. Par exemple, si l’objet est une procédure stockée ou un type défini par l’utilisateur, la recréation de l’objet peut résoudre le problème.
Restaurer à partir d'une sauvegarde
Si le problème n’est pas lié au matériel et qu’une sauvegarde propre connue est disponible, restaurez la base de données à partir de la sauvegarde. Cette action s’applique uniquement si la sauvegarde ne contient pas l’erreur de métadonnées.
Exporter les données vers une nouvelle base de données
Si la sauvegarde contient également une incohérence des métadonnées, vous devez créer une base de données et exporter le contenu de la base de données existante vers la nouvelle base de données.
DBCC CHECKDB ne peut pas réparer cette erreur
Cette erreur ne peut pas être réparée. Si vous ne pouvez pas restaurer la base de données à partir d’une sauvegarde, contactez le support Microsoft.
Ne mettez pas à jour manuellement les tables système
N’effectuez pas de mises à jour manuelles des tables système. SQL Server ne prend pas en charge les modifications manuelles apportées aux bases de données système. Si vous mettez à jour une table système dans une base de données SQL Server, les événements suivants sont journalisés :
Quand une table système est mise à jour manuellement
Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.
Démarrer une base de données avec une table système mise à jour manuellement
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.
Vous exécutez la commande DBCC CHECKDB après la mise à jour manuelle d’une table système
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.