En regardant d'autres exemples, j'ai trouvé ce qui suit mais cela ne semble pas fonctionner comme je le souhaiterais: je veux qu'il ne mette à jour les informations modifiées que si la QtyToRepair
valeur a été mise à jour ... mais cela ne fonctionne pas cette.
Si je commente le lieu, les informations modifiées sont mises à jour dans tous les cas. Comme je l'ai dit, d'autres exemples m'ont conduit à être optimiste. Tous les indices appréciés. Merci.
Walter
ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified]
ON [dbo].[SCHEDULE]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE SCHEDULE SET modified = GETDATE()
, ModifiedUser = SUSER_NAME()
, ModifiedHost = HOST_NAME()
FROM SCHEDULE S
INNER JOIN Inserted I on S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber
WHERE S.QtyToRepair <> I.QtyToRepair
END
update()
- il ne teste que si la colonne apparaît dans la liste de mise à jour et est toujours vrai pour les insertions. Il ne vérifie pas si la valeur de la colonne a changé, car vous pouvez avoir plus d'une ligne, où certaines valeurs ont changé et d'autres pas.