DBCC CHECKCATALOG (Transact-SQL)
Verifica a consistência do catálogo dentro do banco de dados especificado. O banco de dados deve estar online.
Convençõ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 do DBCC interno. |
2 |
Ocorreu uma falha durante o reparo do banco de dados em 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 |
Ocorreu um erro desconhecido que finalizou 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 Exibir o tamanho do arquivo esparso de um instantâneo de banco de dados (Transact-SQL) 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çã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 no 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çã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 AdventureWorks2012 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 AdventureWorks2012 database.
DBCC CHECKCATALOG (AdventureWorks2012);
GO