Bonjour !
Je suis sous SQLserver 2008
J'ai un Trigger ON table1 AFTER INSERT, UPDATE
Dans lequel une partie du code ne doit etre exécuté que sur INSERT
Pour cela je testeCe trigger va affecter table2, et invoquer un trigger qui va effectuer un UPDATE sur la ligne de table1 que je viens d'inserer
Code : Sélectionner tout - Visualiser dans une fenêtre à part if not exists (Select * from Deleted)
Le trigger ON table1 AFTER INSERT, UPDATE est donc appelé une deuxième fois (récursivité indirecte) mais en provenance cette fois d'un UPDATE
Problème : lorsqu'il passe sur le test : if not exists (Select * from Deleted)
il me renvoie une table DELETED vide, comme si l'évènement déclencheur était INSERT !
Comment faire dans ce cas pour savoir quel est l'évènement déclencheur,
tout en gardant un seul trigger pour INSERT et UPDATE ?
(Il y a d'autres opérations communes dans ce Trigger, qui utilisent la table INSERTED,
il serait compliqué de déporter ce traitement dans une procédure stockée, car a ce moment je n'aurait plus accès a INSERTED)
Merci
Partager