none
Delete com inner join RRS feed

  • Pergunta

  • Pessoal,

    Estou tentando fazer um delete com inner join, porem nao estou conseguindo.

    O comando é o seguinte:

    delete tblwriatos.PK_SeqAto from tblwriatos

    inner join tblwrireal on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id

     where tblwrireal.PK_Num_Livro between 102864 and 103097

    and tblwriatos.PK_SeqAto in (1,2)

    Quando roda da o erro na linha 1 no campo: pk_seqAto:

    Msg 208, Level 16, State 1, Line 1
    Invalid object name 'tblwriatos.PK_SeqAto'.

    Porem o campo PK_seqAto existe na tabela tblwriatos, e esta escrito de forma correta.

    Como posso resolver?

    quarta-feira, 15 de outubro de 2014 19:51

Respostas

  • Boa tarde,

    Experimente dessa forma:

    delete from tblwriatos 
    from tblwriatos
    inner join tblwrireal 
        on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id
    where 
        tblwrireal.PK_Num_Livro between 102864 and 103097 and
        tblwriatos.PK_SeqAto in (1, 2)

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 15 de outubro de 2014 20:01
  • Vc quer deletar um campo??? O comando Delete serve para deletar o registro.. porem quando há um inner join, vc deve dizer qual é a tabela que vc quer deletar (e nao o campo) o comando fica mais ou menos assim:

    delete tblwriatos from tblwriatos
    inner join tblwrireal on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id
     where tblwrireal.PK_Num_Livro between 102864 and 103097
    and tblwriatos.PK_SeqAto in (1,2)


    Isso vai fazer com que os registros da tabela "tblwriatos" sejam apagados... antes de executar o comando acima, faça isso:

    select tblwriatos.* from tblwriatos
    inner join tblwrireal on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id
     where tblwrireal.PK_Num_Livro between 102864 and 103097
    and tblwriatos.PK_SeqAto in (1,2)

    dessa forma voce vai visualizar se o comando esta realmente trazendo os registros que vc quer deletar.

    Faça um backup antes.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 15 de outubro de 2014 20:05

Todas as Respostas

  • Boa tarde,

    Experimente dessa forma:

    delete from tblwriatos 
    from tblwriatos
    inner join tblwrireal 
        on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id
    where 
        tblwrireal.PK_Num_Livro between 102864 and 103097 and
        tblwriatos.PK_SeqAto in (1, 2)

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    quarta-feira, 15 de outubro de 2014 20:01
  • Vc quer deletar um campo??? O comando Delete serve para deletar o registro.. porem quando há um inner join, vc deve dizer qual é a tabela que vc quer deletar (e nao o campo) o comando fica mais ou menos assim:

    delete tblwriatos from tblwriatos
    inner join tblwrireal on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id
     where tblwrireal.PK_Num_Livro between 102864 and 103097
    and tblwriatos.PK_SeqAto in (1,2)


    Isso vai fazer com que os registros da tabela "tblwriatos" sejam apagados... antes de executar o comando acima, faça isso:

    select tblwriatos.* from tblwriatos
    inner join tblwrireal on tblwrireal.PK_Id = tblwriatos.FK_tblWRIReal_Id
     where tblwrireal.PK_Num_Livro between 102864 and 103097
    and tblwriatos.PK_SeqAto in (1,2)

    dessa forma voce vai visualizar se o comando esta realmente trazendo os registros que vc quer deletar.

    Faça um backup antes.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 15 de outubro de 2014 20:05