Bonjour,
Alors j'ai un trigger sur une table qui permet d'évaluer si un champ de prix a été réellement modifié. Si le nouveau prix est différent de l'ancien, alors la date du jour est récupérée dans un autre champ. Si le prix est le même alors le fameux champ date n'est pas modifié.
Le trigger fonctionne si je vais dans une fiche article et que je fais une modification de prix.
Le trigger ne fonctionne pas lorsque je fais de l'import en masse de nouveaux tarifs. Que le prix soit différent ou pas, la date n'est jamais modifiée... Et c'est là où je bloque !
Voici mon code :
J'ai tenté des dizaines de variantes sans arrivé à une solutionlorsque j'importe en masse des nouveaux prix.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 -- La table ARTTARIFLIGNE est la table de destination du nouveau prix CREATE TRIGGER [dbo].[EXT_DATEMAJTARIF_IU] ON [dbo].[ARTTARIFLIGNE] AFTER INSERT, UPDATE AS DECLARE @date date SET @date = GetDate() IF (Update(ATFPRIX)) BEGIN -- La table ARTICLES_P est la où se trouve ma colonne de date si modification UPDATE ARTICLES_P SET DATEMAJTARIF = @date FROM ARTICLES_P AS t INNER JOIN INSERTED AS i ON T.ARTID = i.ARTID INNER JOIN DELETED AS d ON T.ARTID = d.ARTID WHERE i.ATFPRIX <> d.ATFPRIX END
Est-ce possible ? Si oui, où est mon erreur ?
Merci par avance !
Jean-Mi




Répondre avec citation







Partager