Verificando a Integridade e Consistência do Catálogo no SQL Server
O comando DBCC CHECKCATALOG verifica a consistência entre as tabelas de metadados do sistema de um banco de dados, ou seja, confirma se as informações internas sobre tabelas, colunas, tipos de dados e demais objetos do banco estão íntegras e coerentes entre si.
Detalhes importantes antes de usar
- O banco de dados especificado precisa estar online para que a verificação seja executada.
- O comando não pode ser executado no banco
tempdb. - Desde o SQL Server 2005,
DBCC CHECKDBjá inclui, por padrão, as verificações equivalentes às doDBCC CHECKCATALOG. Ou seja, se você já rodaDBCC CHECKDBregularmente, a consistência do catálogo já está sendo verificada junto.DBCC CHECKCATALOGcontinua sendo útil quando você quer checar só essa parte específica, de forma isolada e mais rápida, sem rodar a verificação completa do banco.
Sintaxe
DBCC CHECKCATALOG
[
( database_name | database_id | 0 )
]
[ WITH NO_INFOMSGS ]
Argumentos
-
database_name | database_id | 0: nome ou ID do banco de dados a ser verificado. Se não for informado, ou se
0for especificado, o banco de dados atual da sessão é usado. - WITH NO_INFOMSGS: suprime as mensagens informativas, deixando a saída com apenas os erros relevantes, quando houver.
Exemplo básico
Para verificar a consistência do catálogo de um banco específico:
DBCC CHECKCATALOG('NomeDoBanco');
Outros exemplos
Verificando o banco de dados atual da sessão, sem informar nome:
DBCC CHECKCATALOG;
GO
Verificando um banco específico, com um exemplo usando o AdventureWorks:
DBCC CHECKCATALOG(AdventureWorks2019);
GO
O que fazer se forem encontrados erros
DBCC CHECKCATALOG é uma ferramenta de diagnóstico: ele reporta inconsistências, mas não tenta corrigi-las automaticamente (diferente de DBCC CHECKTABLE e DBCC CHECKDB, que aceitam opções de reparo). Se DBCC CHECKCATALOG encontrar problemas, o próximo passo recomendado é rodar DBCC CHECKDB no mesmo banco, já que ele reúne verificações mais completas e, quando necessário, oferece opções de reparo.
Conclusão
DBCC CHECKCATALOG é útil para uma verificação rápida e isolada da consistência do catálogo de metadados de um banco. Como essa checagem já faz parte do DBCC CHECKDB desde o SQL Server 2005, na maioria dos casos rodar CHECKDB periodicamente já cobre essa necessidade; use CHECKCATALOG isoladamente quando quiser uma verificação mais pontual e rápida, sem o custo de checar o banco inteiro.
Materiais e leituras que recomendamos para você:
- Instalação SQL Server 2017 Express + SSMS + Adventure Works
- Instalação do SQL Server no Linux
- Monitorar progresso de Backup e Restore no SQL Server
- Obtendo a quantidade de registros das tabelas de um banco de dados SQL Server
- Utilização de Memória no SQL Server
Referência: Documentação oficial do DBCC CHECKCATALOG (Microsoft Docs)