none
Tabela Temporária DELETED RRS feed

  • Discussão Geral

  • Boa tarde.

    Estou montando uma Trigger que retorne quantidades ao meu estoque quando ocorrerem exclusões de registros.

    Pois bem, quando executo o comando:

    delete from tabela where idvenda=numero da venda

    em uma venda com mais de 1 item, somente o primeiro tem a quantidade retornada, nos demais o processo não é executado, deixando o estoque errado.

    Creio que se os registros fossem apagados 1 a 1 daria certo. Mas como fazer funcionar em uma exclusão deste tipo?

    Obrigado.


    José Acílio

    sexta-feira, 14 de setembro de 2018 18:24

Todas as Respostas

  • Boa tarde,

    José, você montou a trigger considerando que a mesma é disparada somente uma vez mesmo que a venda tenha mais de 1 item?

    Lembrando que a tabela Deleted vai conter todos os itens excluídos, não importa quantos sejam.


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


    • Editado gapimex sexta-feira, 14 de setembro de 2018 18:47
    sexta-feira, 14 de setembro de 2018 18:46
  • Deleted
    sexta-feira, 14 de setembro de 2018 19:58
  • José Acilio,

    Como destacado, o trigger é um comando transacional, e ele estando vinculado a uma tabela vai existir durante o processamento da referido transação ao qual ele esta vinculado.

    No caso do seu Select, o trigger vai possuir todas as linhas de registros excluídas na tabela.

    Agora se você deseja realmente saber a quantidade excluída, talvez seja o caso de implementar alguma regra na sua aplicação ou até mesmo no banco que faça um select simular ao seu delete, filtrando justamente pelo número da venda, assim você terá a quantidade excluída, antes mesmo de excluir estes dados.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 17 de setembro de 2018 12:31