DBCC CHECKCATALOG (Transact-SQL)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure
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 ]
Observação
Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.
Argumentos
database_name | database_id | 0
É o nome ou a ID do banco de dados que contém o catálogo que terá a consistência verificada. Se não for especificado ou se 0 for especificado, o banco de dados atual será usado. Os nomes de banco de dados precisam estar em conformidade com as regras de identificadores.
WITH NO_INFOMSGS
Suprime todas as mensagens informativas.
Comentários
Depois que o comando DBCC CHECKCATALOG
é concluído, 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 devido a um erro, a mensagem indicará que o comando foi finalizado, um valor de estado e a duração da 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 número do erro 8930 foi gerado. Isso indica um dano de metadados que provocou a finalização do comando DBCC. |
1 | O erro número 8967 foi gerado. Ocorreu um erro interno de DBCC. |
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 de banco de dados interno para fornecer a consistência transacional necessária ao executar essas verificações. Para saber mais, confira Exibir o tamanho do arquivo esparso de um instantâneo de banco de dados (Transact-SQL) e a seção Uso do instantâneo de banco de dados interno do DBCC em DBCC (Transact-SQL).
Se não for possível criar um instantâneo, DBCC CHECKCATALOG
obterá um bloqueio de banco de dados exclusivo para adquirir a consistência necessária. Se qualquer inconsistência for detectada, ela não poderá ser reparada e o banco de dados deverá ser restaurado com base em um backup.
Observação
A execução de DBCC CHECKCATALOG
em tempdb
não realiza nenhuma verificação. Isso porque, devido a motivos de desempenho, os instantâneos de banco de dados não estão disponíveis em tempdb
. Isso significa que não é possível obter a consistência transacional exigida. Reinicie o serviço do Mecanismo de Banco de Dados para resolver quaisquer problemas de metadados de 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á o seguinte:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Se AdventureWorks2022
for especificado como o nome do banco de dados, DBCC CHECKCATALOG
retornará o seguinte:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permissões
Requer a associação à função de servidor fixa sysadmin ou à 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 AdventureWorks2022
.
-- Check the current database.
DBCC CHECKCATALOG;
GO
-- Check the AdventureWorks database.
DBCC CHECKCATALOG (AdventureWorks2022);
GO