none
Constraint RRS feed

  • Pergunta

  • Caros amigos do Fórum. Preciso de uma ajuda.

       Tenho uma base de dados onde tem várias tabelas. Precisei excluir alguns registros de duas tabelas. Então desabilitei as constraints de uma, a tabela pai, deletei o registros que eu queria e então desabilitei as constraints da tabela filho e exclui das tabelas filhos de acordo com o valor da foreingn KEY. ou seja:

    - Depois de ter deletado registros da tabela pai, fiz um delete na tabela filho.

    delete from <tabela filho> where not exists (select * from <tabela pai> where <tabelapai>.<chaveprimaria>=<tabelafilho>.<chaveestrangeira>)

    Só que depois disso não consegui fechar a constraint.

    Fiz um select para descobrir qual registros da tabela filho era dependente da tabela pai.

    select * from <tabela filho> where not exists (select * from <tabela pai> where <tabelapai>.<chaveprimaria>=<tabelafilho>.<chaveestrangeira>)

    E nao tive resultado.

    Preciso descobrir qual registro na tabela filho está impedindo o fechamento da constraint. Teria como saber no momento da ativação da Constraint? Ou seja, tento habilitar a constraint e quero receber uma informação do registro que está inpedindo. Tem como?

    Obrigado!!!



    quinta-feira, 17 de maio de 2012 18:55

Respostas

  • jmarqDeveloper,

    Não conheço nenhum recurso que seja capaz de realizar isso, verificar no momento da criação da constraint quais registros podem estar impedindo.

    Se você excluiu todos os registros da tabela filho que não possuem pai, teoricamente a ativação da constraint na tabela pai deveria funcionar.

    O que pode estar acontecendo é existir algum registro na tabela filho que o pai já não exista mais, ai o problema esta relacionado a Integridade Referencial, o que você poderia tentar fazer é desabilitar a regras de Update_Cascade e Delete_Cascade da sua tabela pai e tentar ativar a constraint.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Sugerido como Resposta Heloisa Pires segunda-feira, 4 de junho de 2012 14:18
    • Marcado como Resposta Heloisa Pires terça-feira, 5 de junho de 2012 17:45
    sexta-feira, 18 de maio de 2012 17:43