MSSQLSERVER_8992
Aplica-se: SQL Server
Detalhes
Item | 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 localizou uma inconsistência nas tabelas de metadados do sistema para o objeto especificado. Isto é, há uma inconsistência entre a ID do objeto registrado e o objeto especificado na mensagem de erro.
Esse erro pode ocorrer quando uma ou mais tabelas do sistema foram atualizadas manualmente de uma maneira que cria uma inconsistência nos metadados do sistema. Por exemplo, um usuário pode ter excluído manualmente um objeto da tabela sysobjects sem remover as 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 para o SQL Server 2005 ou posterior. No SQL Server 2000, o DBCC CHECKDB não incluía a funcionalidade DBCC CHECKCATALOG, portanto o erro não seria capturado antes da atualização a menos que DBCC CHECKCATALOG fosse executado especificamente no banco de dados no SQL Server 2000.
Você pode consultar quaisquer um dos erros a seguir em conjunto com o erro 8992:
ID da Msg | Texto da Msg |
---|---|
3851 | Uma linha inválida (%ls) foi encontrada na tabela do sistema sys.%ls%ls. |
3852 | Linha (%ls) em sys.%ls%ls sem linha correspondente (%ls) em sys.%ls%ls. |
3853 | Atributo (%ls) da linha (%ls) em sys.%ls%ls sem linha correspondente (%ls) em sys.%ls%ls. |
3854 | Atributo (%ls) da linha (%ls) em sys.%ls%ls com linha correspondente (%ls) inválida em sys.%ls%ls. |
3855 | Atributo (%ls) existente sem uma linha (%ls) em sys.%ls%ls. |
3856 | O atributo (%ls) existe, mas não deveria, para a linha (%ls) em sys.%ls%ls. |
3857 | O atributo (%ls) é necessário, mas não existe para a linha (%ls) em sys.%ls%ls. |
3858 | O atributo (%ls) da linha (%ls) em sys.%ls%ls tem um valor inválido. |
Ação do usuário
Descartar 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, a recriação do objeto poderá resolver o problema.
Restaurar a partir de backup
Se o problema não estiver relacionado ao hardware e se houver um backup limpo conhecido, 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 este erro
Esse erro não pode ser reparado. Se você não conseguir restaurar o banco de dados a partir de um backup, entre em contato com o Suporte e Atendimento ao Cliente Microsoft (CSS).
Não atualizar manualmente tabelas do sistema
Não faça atualizações manuais em tabelas do sistema. O SQL Server não oferece suporte a alterações manuais em 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: Aviso: A ID da tabela <do sistema foi atualizada diretamente na ID> da base <de dados e a coerência da cache pode não ter sido mantida.> O SQL Server deve ser reiniciado.
Iniciando um banco de dados com uma tabela do sistema que foi atualizada manualmente
Msg 3859: Aviso: O catálogo do sistema foi atualizado diretamente no ID> do banco de dados<, mais recentemente em date_time
quando você executa o comando DBCC_CHECKDB depois que uma tabela do sistema é atualizada manualmente
Msg 3859: Aviso: O catálogo do sistema foi atualizado diretamente no ID> do banco de dados<, mais recentemente em date_time.