Tempo aproximado para leitura: 00:01:20 min
Ocorrência
Na etapa de atualização de dicionário pelo Console de Atualização apresenta a mensagem, exemplo:
The object 'DF__fda_lote___nr_tr__21BAC967' is dependent on column 'nr_trans'.
ALTER TABLE ALTER COLUMN nr_trans failed because one or more objects access this column.
Ambiente
Framework - Framework (Linha Datasul) - SQL Server - Versão 12
Causa
Acontece porque está tentando alterar ou excluir a coluna, exemplo: nr_trans, mas existe uma Constraint, provavelmente um Default Value ou uma chave estrangeira vinculada a ela. O SQL Server protege a integridade dos dados impedindo alterações na coluna até que essa restrição seja removida.
Solução
O nome da restrição, exemplo: DF__fda_lote___nr_tr__21BAC967 é justamente o nome da restrição, para resolver isso, precisa seguir os passos a seguir.
Execute o comando para apagar a restrição que está bloqueando a alteração:
ALTER TABLE [dbo].[bem_pat_img] DROP CONSTRAINT [DF_bem_pat_icod_c_70D79AEA]Procedimento para Correção na atualização via Console de Atualização do Datasul:
1. Identifique qual banco de dados apresentou o erro e localize a pasta do pacote de scripts correspondente;
2. Verifique o nome da tabela e a constraint que está bloqueando a execução no log de erro;
3. Conecte-se ao SQL Server e execute uma query para eliminar a constraint identificada;
4. Execute diretamente no banco de dados o script do pacote que havia falhado;
5. Retorne ao Console de Atualização do Datasul e prossiga com as etapas restantes do processo.
0 Comentários