Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Detalhes
| Elemento | Alíquota |
|---|---|
| Nome do produto | SQL Server |
| ID do evento | 8992 |
| Origem do Evento | MSSQLSERVER |
| Componente | SQLEngine |
| Nome simbólico | DBCC3_CHECK_CATALOG |
| Texto da mensagem | Verifique a mensagem do catálogo ERROR nível LEVEL Estado STATE: MESSAGE. |
Observação
A mensagem de erro 8992 referencia outra mensagem específica (que varia de 3851 a 3858) sobre a inconsistência real.
Explicação
DBCC CHECKCATALOG ou DBCC CHECKDB encontrou uma inconsistência nas tabelas de metadados do sistema para o objeto especificado. Ou seja, há uma inconsistência entre a ID do objeto gravado e o objeto especificado na mensagem de erro.
Esse erro pode ocorrer quando uma ou mais tabelas do sistema foram atualizadas manualmente de uma forma que cria uma inconsistência nos metadados do sistema. Por exemplo, você pode excluir manualmente um objeto da sysobjects tabela sem remover linhas associadas em outras tabelas, como sysindexes e syscolumns.
Esse erro pode ocorrer ao executar DBCC CHECKDB em um banco de dados que foi atualizado do SQL Server 2000 (8.x) para uma versão posterior do SQL Server. No SQL Server 2000 (8.x), DBCC CHECKDB não incluía DBCC CHECKCATALOG a funcionalidade, portanto, o erro não é capturado antes da atualização, a menos que DBCC CHECKCATALOG seja executado especificamente no banco de dados no SQL Server 2000 (8.x).
Você pode ver qualquer um dos seguintes erros junto com o erro 8992:
| ID da mensagem | Texto da mensagem |
|---|---|
3851 |
An invalid row (%ls) was found in the system table sys.%ls%ls. |
3852 |
Row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3853 |
Attribute (%ls) of row (%ls) in sys.%ls%ls does not have a matching row (%ls) in sys.%ls%ls. |
3854 |
Attribute (%ls) of row (%ls) in sys.%ls%ls has a matching row (%ls) in sys.%ls%ls that is invalid. |
3855 |
Attribute (%ls) exists without a row (%ls) in sys.%ls%ls. |
3856 |
Attribute (%ls) exists but should not for row (%ls) in sys.%ls%ls. |
3857 |
The attribute (%ls) is required but is missing for row (%ls) in sys.%ls%ls. |
3858 |
The attribute (%ls) of row (%ls) in sys.%ls%ls has an invalid value. |
Ação do usuário
Remover e recriar o objeto especificado
Se possível, descarte e recrie o objeto especificado. Por exemplo, se o objeto for um procedimento armazenado ou um tipo definido pelo usuário, recriar o objeto poderá resolver o problema.
Restaurar usando backup
Se o problema não estiver relacionado ao hardware e um backup limpo conhecido estiver disponível, restaure o banco de dados do backup. Essa ação só será aplicável se o backup não contiver o erro de metadados.
Exportar os dados para um novo banco de dados
Se o backup também contiver a inconsistência de metadados, você precisará criar um novo banco de dados e exportar o conteúdo do banco de dados existente para o novo banco de dados.
DBCC CHECKDB não pode reparar esse erro
Esse erro não pode ser reparado. Se você não puder restaurar o banco de dados de um backup, entre em contato com o Suporte da Microsoft.
Não atualize manualmente as tabelas do sistema
Não faça atualizações manuais nas tabelas do sistema. O SQL Server não dá suporte a alterações manuais nos bancos de dados do sistema. Se você atualizar uma tabela do sistema em um banco de dados do SQL Server, os seguintes eventos serão registrados em log:
Quando uma tabela do sistema é atualizada manualmente
Msg 17659: Warning: System table ID <id> has been updated directly in database ID <id> and cache coherence may not have been maintained. SQL Server should be restarted.
Iniciar um banco de dados com uma tabela do sistema que foi atualizada manualmente
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.
Execute o comando DBCC CHECKDB depois que uma tabela do sistema for atualizada manualmente
Msg 3859: Warning: The system catalog was updated directly in database ID <id>, most recently at date_time.