Compartir a través de


MSSQLSERVER_8992

Se aplica a:SQL Server

Detalles

Elemento Valor
Nombre del producto Servidor SQL
Id. de evento 8992
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico DBCC3_CHECK_CATALOG
Texto del mensaje Mensaje de comprobación del catálogo ERROR nivel LEVEL estado STATE: MESSAGE.

Nota:

El mensaje de error 8992 hace referencia a otro mensaje específico (entre 3851 y 3858) sobre la incoherencia real.

Explicación

DBCC CHECKCATALOG o DBCC CHECKDB encontró una incoherencia en las tablas de metadatos del sistema para el objeto especificado. Es decir, hay una incoherencia entre el identificador de objeto registrado y el objeto especificado en el mensaje de error.

Este error puede producirse cuando una o varias tablas del sistema se actualizaron manualmente de una manera que crea una incoherencia en los metadatos del sistema. Por ejemplo, puede eliminar manualmente un objeto de la sysobjects tabla sin quitar filas asociadas en otras tablas, como sysindexes y syscolumns.

Este error puede producirse al ejecutarse DBCC CHECKDB en una base de datos que se actualizó de SQL Server 2000 (8.x) a una versión posterior de SQL Server. En SQL Server 2000 (8.x), DBCC CHECKDB no se incluye DBCC CHECKCATALOG la funcionalidad, por lo que el error no se detecta antes de la actualización a menos DBCC CHECKCATALOG que se ejecute específicamente en la base de datos en SQL Server 2000 (8.x).

Es posible que vea cualquiera de los siguientes errores junto con el error 8992:

Id. del mensaje Texto del mensaje
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.

Acción de usuario

Quitar y volver a crear el objeto especificado

Si es posible, quite y vuelva a crear el objeto especificado. Por ejemplo, si el objeto es un procedimiento almacenado o un tipo definido por el usuario, volver a crear el objeto podría resolver el problema.

Restauración mediante la copia de seguridad

Si el problema no está relacionado con el hardware y hay disponible una copia de seguridad limpia conocida, restaure la base de datos a partir de la copia de seguridad. Esta acción solo es aplicable si la copia de seguridad no contiene el error de metadatos.

Exportación de los datos a una nueva base de datos

Si la copia de seguridad también contiene la incoherencia de metadatos, debe crear una nueva base de datos y exportar el contenido de la base de datos existente a la nueva.

DBCC CHECKDB no puede reparar este error

Este error no se puede reparar. Si no puede restaurar la base de datos desde una copia de seguridad, póngase en contacto con el soporte técnico de Microsoft.

No actualice manualmente las tablas del sistema

No realice actualizaciones manuales en las tablas del sistema. SQL Server no admite ningún cambio manual en las bases de datos del sistema. Si actualiza una tabla del sistema de una base de datos de SQL Server, se registran los eventos siguientes:

Cuando se actualiza manualmente una tabla del sistema

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.

Iniciar una base de datos con una tabla del sistema que se actualizó manualmente

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.

Ejecute el comando DBCC CHECKDB después de actualizar manualmente una tabla del sistema.

Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.