none
Verificar chave estrangeira RRS feed

  • Pergunta

  • Boa Tarde Pessoal,

    Existe algum método para verificar integridade de chave estrangeira.

    Por exemplo tenho uma tela de cadastro, e nela tem a função deletar. Porém eu não posso simplesmente deletar. Eu preciso verificar se esse registro que será deletado, está sendo utilizado em outra tabela como chave estrangeira. E somente se essa verificação for falsa eu deleto o registro.

    Além de fazer um select em todas as tabelas que utilizam a chave estrangeira desse registro. Existe outro método? 

    quinta-feira, 15 de setembro de 2011 20:50

Respostas

Todas as Respostas

  • Deleted
    quinta-feira, 15 de setembro de 2011 20:55
  • Emannuelle

    as Foreing keys ja fazem esta verificação.

    create table Tipo (idTp int not null Primary Key, nome varchar(20))
    create table Nome (idNom int identity(1,1) Primary Key, nome varchar(20), idTp int)
    go
    alter table Nome add constraint fk_tp_nome foreign key (idTp) references tipo(idTp)
    go
    
    --insere valores
    insert into tipo values (1,'Jedi'),(2,'Robo')
    go
    insert into Nome values ('C3PO',2),('YODA',1)
    go
    
    --tenta exluir registro da tabela pai (não pode pois temos um tabela que depende deste registro)
    delete from tipo where idTp = 1
    



    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quinta-feira, 15 de setembro de 2011 20:57
  • Deleted
    quinta-feira, 15 de setembro de 2011 20:59
  • Boa noite,

    Sim eu sei que o as Foreing keys ja fazem esta verificação.

    Porém o que eu queria é identificar esse "erro" e exibir uma mensagem para o usuário. Será que tem como ?

    sexta-feira, 16 de setembro de 2011 02:33
  • Deleted
    • Marcado como Resposta Emmannuelle terça-feira, 27 de setembro de 2011 19:20
    sexta-feira, 16 de setembro de 2011 12:23