none
ERRO DELETE RRS feed

  • Pergunta

  • Pessoal, boa tarde. 

    Estou executando um delete extremamente simples, porém estou obtendo o seguinte retorno:

    Msg 547, Level 16, State 0, Line 1
    The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "FK[TABELA]_[MESMA TABELA]". The conflict occurred in database "[BD UTILIZADO]", table "dbo.[MESMA TABELA]".
    The statement has been terminated.

    Query utilizada:

    DELETE 

    FROM 

    [TABELA]

    WHERE

    [CONDICAO]

    Obrigado!


    terça-feira, 14 de junho de 2016 20:26

Respostas

  • Boa noite,

    Gabriel, concordo com o que o colega explicou. Para exemplificar imagine que você possua duas tabelas (cidade e estado). As tabelas estão estruturada de maneira que a tabela cidade possui o atributo (id do estado), logo poderíamos fazer referência (foreign key) com a tabela de estado (id do estado).
    Assim, não seria possível eu apagar um determinado estado se o mesmo conter na tabela cidade. Imagine que cadastrei a cidade de "Contagem" com "id do estado = 1" que corresponde a "MG". Logo se eu apagar o estado de "MG" ficaria apenas o "id do estado = 1" na tabela de cidade, mas como saber qual era o estado?
    Por esse motivo (segurança), quando adicionamos chave estrangeira não podemos remover se estiver em "uso".

    Espero ter ajudado,

    Qualquer dúvida, pode postar.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    quarta-feira, 15 de junho de 2016 02:51

Todas as Respostas

  • Deleted
    terça-feira, 14 de junho de 2016 21:10
  • Boa noite,

    Gabriel, concordo com o que o colega explicou. Para exemplificar imagine que você possua duas tabelas (cidade e estado). As tabelas estão estruturada de maneira que a tabela cidade possui o atributo (id do estado), logo poderíamos fazer referência (foreign key) com a tabela de estado (id do estado).
    Assim, não seria possível eu apagar um determinado estado se o mesmo conter na tabela cidade. Imagine que cadastrei a cidade de "Contagem" com "id do estado = 1" que corresponde a "MG". Logo se eu apagar o estado de "MG" ficaria apenas o "id do estado = 1" na tabela de cidade, mas como saber qual era o estado?
    Por esse motivo (segurança), quando adicionamos chave estrangeira não podemos remover se estiver em "uso".

    Espero ter ajudado,

    Qualquer dúvida, pode postar.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    quarta-feira, 15 de junho de 2016 02:51
  • Olá José, boa tarde.

    A solução que enviou me ajudou bastante. Haviam vínculos na mesma tabela (linhas filhas) que com a devida manutenção que no caso foram aplicados updates, conseguiu permitir o delete nas linhas que eu precisava (linhas pai).

    Grande abraço.

    Obrigado! 

    quarta-feira, 15 de junho de 2016 18:12
  • Muito obrigado pelo apoio Silvaney!!!

    Grande abraço !

    quarta-feira, 15 de junho de 2016 18:13