DBCC CHECKCATALOG (Transact-SQL)

Verifica a consistência do catálogo dentro do banco de dados especificado. O banco de dados deve estar online.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • database_name | database_id | 0
    É o nome ou ID do banco de dados para o qual verificar consistência do catálogo. Se não for especificado, ou se 0 for especificado, o banco de dados atual será usado. Nomes de banco de dados devem obedecer às regras para identificadores.

  • WITH NO_INFOMSGS
    Suprime todas as mensagens informativas.

Comentários

Depois que o comando DBCC CATALOG termina, uma mensagem é gravada no log de erros do SQL Server. Se o comando DBCC for executado com êxito, a mensagem indicará uma conclusão bem-sucedida e o tempo de execução do comando. Se o comando DBCC parar antes de concluir a verificação por causa de um erro, a mensagem indicará que o comando foi finalizado, um valor de estado e o tempo de execução do comando. A tabela a seguir lista e descreve os valores de estado que podem ser incluídos na mensagem.

Estado

Descrição

0

O erro número 8930 foi gerado. Isso indica um dano de metadados que provocou a finalização do comando DBCC.

1

Erro número 8967 foi gerado. Ocorreu um erro de DBCC interno.

2

Ocorreu uma falha durante o reparo do banco de dados no modo de emergência.

3

Isso indica um dano de metadados que provocou a finalização do comando DBCC.

4

Uma declaração ou violação de acesso foi detectada.

5

Um erro desconhecido ocorreu que terminou o comando DBCC.

DBCC CHECKCATALOG executa vários testes de consistência entre tabelas de metadados do sistema. DBCC CHECKCATALOG usa um instantâneo do banco de dados interno para fornecer a consistência transacional necessária ao executar essas verificações. Para obter mais informações, consulte Compreendendo tamanhos de arquivo esparso em instantâneos do banco de dados e a seção "Uso de instantâneo de banco de dados interno DBCC" em DBCC (Transact-SQL).

Se um instantâneo não puder ser criado, DBCC CHECKCATALOG obterá um bloqueio de banco de dados exclusivo para adquirir a consistência exigida. Se qualquer inconsistência for detectada, não poderá ser reparada e o banco de dados deverá ser restaurado a partir de um backup.

ObservaçãoObservação

A execução de DBCC CHECKCATALOG em tempdb não executa nenhuma verificação. Isso porque, por razões de desempenho, instantâneos do banco de dados não estão disponíveis em tempdb. Isso significa que a consistência transacional exigida não pode ser obtida. Recicle o servidor para resolver qualquer problema de metadados tempdb.

ObservaçãoObservação

DBCC CHECKCATALOG não verifica dados FILESTREAM. FILESTREAM armazena BLOBS (objetos binários grandes) no sistema de arquivos.

DBCC CHECKCATALOG também é executado como parte de DBCC CHECKDB.

Conjuntos de resultados

Se nenhum banco de dados for especificado, DBCC CHECKCATALOG retornará:

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

Se AdventureWorks for especificado como nome do banco de dados, DBCC CHECKCATALOG retornará:

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

Permissões

Requer associação na função de servidor fixa sysadmin ou na função de banco de dados fixa db_owner.

Exemplos

O exemplo a seguir verifica a integridade do catálogo no banco de dados atual e no banco de dados AdventureWorks.

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