| ♥ 0 | Boa tarde, Ao tentar atualizar uma BD, chega aos 35% e não continua, dá o Erro ao abrir a empresa (print em anexo)
Conteudo do log: [23/11/2022] ActualizaBaseDados INICIO. IF (dbo.STD_FieldExists(‘CabecDocStatus’, ‘DocEnviadoEmail’) = 0) …ERRO!
Ao correr a instrução SQL diretamente no Management Studio dá o mesmo erro: A DML statement encountered a missing entry in index ID 1 of table ID 469576711, in the database ‘PRIMATERSILVA’ due to an interaction with another transaction. If you continue to see this error, consider using Repeatable Read or higher isolation level.
O que fazer para ultrapassar e atualizar a BD? Obrigado. Marked as spam |
| Private answer Aqui vai o txt com os erros que "dbcc checkdb" devolveu Marked as spam | |
| Private answer O primeiro diagnóstico que recomendo é o da integridade da base de dados. Executar o comando: "dbcc checkdb". A versão do SQL é uma versão suportada pelo ERP? Outra validação passa por garantir que ao adicionar esta constraint não vai violar a chave. Aparenta ser esta situação. Marked as spam Comments Boa tarde Armando.
Obrigado pela resposta, mas infelizmente não resolveu.
- Corri o comando "dbcc checkdb" por 2 vezes
- É o SQL 2019 (15.0.2095.3) Questão:
Como garantir que ao adicionar a constraint não vai violar a chave?
Obrigado @heliobaltasar, O que pretendo saber é se nesse diagnóstico apresenta algum erro.
Essa script adiciona uma constraint:
”IF (dbo.STD_FieldExists(‘CabecDocStatus’, ‘DocEnviadoEmail’) = 0)
BEGIN
ALTER TABLE CabecDocStatus ADD DocEnviadoEmail BIT NOT NULL CONSTRAINT CabecDocStatus_DocEnviadoEmail_DF DEFAULT(0) WITH VALUES
END” e se tiver registos em duplicado não vai ser adicionada. Ok, sim apresenta erros:
Table error: Object ID 0, index ID -1, partition ID 0, alloc unit ID 0 (type Unknown), page (1:304736). Test (hdr->m_headerVersion == Page::HEADER_7_0) failed. Values are 0 and 1.
Vou colocar o .txt em anexo Se o comando "DBCC CHECKDB ('prixxxxx', REPAIR_ALLOW_DATA_LOSS)" não resolve o problema automaticamente só recorrendo a um serviço especializado de recuperação da base de dados.
Esse registo em erro terá de ser removido. Boa tarde @armandogonalves ,
Muito obrigado, Resolveu :) |