Array
(
)

SQL Server Constraints

Josemar Silva
   - 17 mai 2012

Caros amigos do Fórum. Preciso de uma ajuda.
Tenho uma base de dados onde tem várias tabelas. Precisei excluir alguns arquivos 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 do Alter Table Constraint? Ou seja, tento habilitar a constraint e quero receber uma informação do registro que está inpedindo. Tem como?
Obrigado!!!

Josemar Silva
   - 17 mai 2012


Citação:
caaaaros amigos do fórum. preciso de uma ajuda.

tenho uma base de dados onde tem várias tabelas. precisei excluir alguns arquivos 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 do alter table constraint? ou seja, tento habilitar a constraint e quero receber uma informação do registro que está inpedindo. tem como?

obrigado!!!

Joel Rodrigues
   - 17 mai 2012

Que mensagem de erro você recebe ao tentar habilitar a constraint?