Trigger SQL

19/02/2016

0

Boa tarde amigos....

Preciso de vossa valiosa ajuda !

Preciso disparar um trigger no SQL com esse update:



update SD1010
set D1_X_NMFOR = A2_NOME
from SA2010 join SD1010 on D1_FORNECE = A2_COD and D1_LOJA = A2_LOJA
where D1_X_NMFOR = '' and SA2010.D_E_L_E_T_ <> '*' and SD1010.D_E_L_E_T_ <> '*'



Se jogar ele direto no trigger sei que não irá funcionar

CREATE TRIGGER uTRG_Atualiza
ON SD1010
for after insert
AS
BEGIN
update SD1010
set D1_X_NMFOR = A2_NOME
from SA2010 join SD1010 on D1_FORNECE = A2_COD and D1_LOJA = A2_LOJA
where D1_X_NMFOR = '' and SA2010.D_E_L_E_T_ <> '*' and SD1010.D_E_L_E_T_ <> '*'
END
Orakulo

Orakulo

Responder

Posts

19/02/2016

Marcos P

Sempre que postar código no fórum, utilize a tag <Inserir Código>... isso ajuda, em muito, o entendimento do problema.

Imagino que você queira dizer que isso não funciona, pois você está tentando fazer um UPDATE na mesma tabela ( na verdade, no mesmo registro ) que está fazendo INSERT.

É essa sua dificuldade ?

Se for, você precisa compreender melhor o conceito de INSERTED que é, apenas para fins didáticos, uma "tabela temporária" que contém apenas o registro que você está manipulando em tempo de inserção na trigger AFTER INSERT.

Dê um olhada nesse link aqui mesmo do DevMedia, tem vários exemplos que podem lhe ser úteis.

Lembrando que no exemplo que você colocou, D1_X_NMFOR receberá sempre o mesmo valor, seja no INSERT, seja no UPDATE via INSERTED, pois a única referência de valor que o Sql Server tem naquele momento, é o mesmo conteúdo de A2_NOME.

Caso sua dúvida nãos seja essa, detalhe-a melhor.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar