Corrigindo Erro: Chave inexistente nesta tabela

SOLVED

Saudações a todos! Neste post venho explicar sobre como corrigir o erro de chave(index) inexistente em uma determinada tabela.

Antes de tudo, iremos replicar o erro: 

Para solucionarmos o problema, primeiramente devemos ir ao nosso dicionário de tabelas:

Acesse a respectiva tabela que contem essa chave(index) 

O primeiro passo para a solução do problema é a validação da tabela propriamente dita 

Após validação, refaça o seu procedimento, caso o erro permaneça, verifique se o index foi criado no banco de dados.

Motivo: Quando criamos uma tabela, seus parâmetros de criação são adicionados às tabelas: ATABLE e ATABIND, entre outras, passando para as tabelas sys. somente quando a validação é feita. 

Segue exemplo: 

 

Como visto acima, mesmo após a validação, o index ZOPPH01 não foi criado na tabela sys.indexes (tabela onde os indexes são armazenados), provocando assim a mensagem de erro

Solução: Nesse caso, foi notado que ao adicionar o código de atividade, o sistema não gravava o índice da tabela ATABIND na sys.indexes. Portanto foi retirado o código de atividade para fins de teste, o que possibilitou a criação do index na tabela sys.indexes. 

Segue exemplo: 

Removemos o código de atividade e revalidamos a tabela.  

O que resultou na criação do  índice ZOPPH_ZOPPH01

Resolvendo assim então, o problema em questão. 

SQL's utilizados:

SELECT at.CODFIC_0, ex.CODIND_0, ex.DESCRIPT_0
FROM DOSSIER.ATABLE at inner join DOSSIER.ATABIND ex on at.CODFIC_0 = ex.CODFIC_0
WHERE at.CODFIC_0 = ''TABELA'

 

select ob.name ,ind.name, *
from sys.objects ob inner join sys.indexes ind on ob.object_id = ind.object_id
where ob.name = 'TABELA
'

Agradecimentos ao pela ajuda na solução deste problema.

Espero ter ajudado! Atenciosamente, João Pedro Fratezi.