DBCC CHECKCATALOG (Transact-SQL)

Actualizado: 5 de diciembre de 2005

Comprueba la coherencia del catálogo en la base de datos especificada. La base de datos debe estar conectada.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • database_name | database_id | 0
    Es el nombre o identificador de la base de datos en la que se va a comprobar la coherencia del catálogo. Si no se especifica o se especifica 0, se utiliza la base de datos actual. Los nombres de las bases de datos deben cumplir las mismas reglas que los identificadores.
  • WITH NO_INFOMSGS
    Suprime todos los mensajes de información.

Conjuntos de resultados

Si no se especifica una base de datos, DBCC CHECKCATALOG devuelve:

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

Si se especifica AdventureWorks como nombre de la base de datos, DBCC CHECKCATALOG devuelve:

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

Notas

Cuando finaliza el comando DBCC CATALOG, se escribe un mensaje en el registro de errores de SQL Server. Si el comando DBCC se ejecuta correctamente, el mensaje lo indica, así como el tiempo de ejecución del comando. Si el comando DBCC se detiene antes de finalizar la comprobación debido a un error, el mensaje indica que el comando se ha cancelado, un valor de estado y el tiempo de ejecución del comando. En la tabla siguiente se muestran y describen los valores de estado que pueden aparecer en el mensaje.

Estado Descripción

0

Se ha generado el error número 8930. Indica un daño en los metadatos que provoca la cancelación del comando DBCC.

1

Se ha generado el error número 8967. Error DBCC interno.

2

Error durante una reparación de base de datos en modo de emergencia.

3

Indica un daño en los metadatos que provoca la cancelación del comando DBCC.

4

Se ha detectado una infracción de acceso o aserción.

5

Error desconocido que cancela el comando DBCC.

DBCC CHECKCATALOG realiza varias comprobaciones de coherencia entre las tablas de metadatos del sistema. DBCC CHECKCATALOG utiliza una instantánea de base de datos interna para proporcionar la coherencia transaccional que necesita para realizar estas comprobaciones. Para obtener más información, vea Descripción del tamaño de los archivos dispersos en instantáneas de bases de datos y la sección sobre el uso de la instantánea de base de datos interna DBCC en DBCC (Transact-SQL).

Si no se puede crear una instantánea, DBCC CHECKCATALOG adquiere un bloqueo de base de datos exclusivo para obtener la coherencia necesaria. Si se detecta cualquier incoherencia, no se podrá reparar y será necesario restaurar la base de datos a partir de una copia de seguridad.

[!NOTA] En SQL Server 2005, al ejecutar DBCC CHECKCATALOG en tempdb, no se realiza ninguna comprobación. Esto se debe a que, por motivos de rendimiento, las instantáneas de bases de datos no están disponibles en tempdb. Esto significa que no se puede obtener la coherencia transaccional necesaria. Recicle el servidor para solucionar cualquier problema con los metadatos de tempdb.

DBCC CHECKCATALOG es ejecuta también como parte de DBCC CHECKDB.

Permisos

Debe pertenecer a la función fija de servidor sysadmin o a la función fija de base de datos db_owner.

Ejemplos

El ejemplo siguiente comprueba la integridad del catálogo tanto en la base de datos actual como en la base de datos AdventureWorks.

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

Vea también

Referencia

DBCC (Transact-SQL)
Tablas del sistema (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

5 de diciembre de 2005

Contenido nuevo:
  • Se agregó a la sección Notas información acerca de los mensajes del registro de errores de SQL Server y una tabla en la que se describen los valores de estado.