Trigger UPDATED sur plusieurs champs
Bonjour!
Je débute en SQL et je fois faire un TRIGGER sur l'ajout, la suppression et la modification de certains champs dans une table. Lorsque ces 3 opérations surviennent, j'ajoute l'information dans une nouvelle table(M=modification, A=Ajout, S=suppression + usager ayant fait la modif +date et heure). Pour l'ajout et la suppression, pas de problèmes. C'est pour la modif qu'il y en a un.
Voici mon code :
***************************************************
CREATE TRIGGER item_updated
ON item
FOR UPDATE
AS
DECLARE
@AncienneValeur VARCHAR(100),
@NouvelleValeur VARCHAR(100),
@NomChamp VARCHAR(100)
IF UPDATE(description)
BEGIN
SELECT @AncienneValeur = (SELECT description FROM Deleted)
SELECT @NouvelleValeur = (SELECT description FROM Inserted)
SELECT @NomChamp = "Description"
END
IF UPDATE(revision)
BEGIN
SELECT @AncienneValeur = (SELECT revision FROM Deleted)
SELECT @NouvelleValeur = (SELECT revision FROM Inserted)
SELECT @NomChamp = "Revision"
END
INSERT INTO item_trigger ( Date_modif,Type_modif,Nom_table, Nom_champ, Ancienne_info, Nouvelle_info, Nom_usager)
SELECT CURRENT_TIMESTAMP, "M", "item", @NomChamp, @AncienneValeur, @NouvelleValeur, UpdatedBy from inserted item
***************************************************
Le problème est que si quelqu'un modifie 2 champs en même temps, seulement une ligne s'ajoute à ma table(il ne tient pas compte de toutes les opérations en même temps). J'imagine qu'il me faudrait une table temporaire ou un curseur???Et si oui, où le placer?
Merci à l'avance de votre aide, je suis vraiment bloqué!
Isabelle