1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
ALTER TRIGGER [dbo].[EV_OCI_ARTSTOCK]
ON [dbo].[F_ARTSTOCK]
FOR UPDATE
AS
BEGIN
declare @ref varchar(50)
DECLARE @old_qte int
DECLARE @oldMontSto money
-- inutile si pas d'update de la colonne visée
IF NOT UPDATE(AS_QTESTO)
RETURN
-- stocke les anciennes valeurs
SELECT @ref = AR_REF
FROM INSERTED
SELECT @old_qte = F_ARTSTOCK.AS_QteSto, @oldMontSto = F_ARTSTOCK.AS_MontSto
FROM F_ARTSTOCK
WHERE F_ARTSTOCK.AR_REF = @ref
INSERT INTO OCI_MVTSTOCK (AR_REF, Heure, QTE_AV, CMUP_AV, QTE_AP, CMUP_AP)
SELECT INSERTED.AR_REF, getdate(), @old_qte, @oldMontSto, INSERTED.AS_QteSto, INSERTED.AS_MontSto
FROM INSERTED
-- rollback en cas d'erreur
IF @@Error <> 0
ROLLBACK TRANSACTION
END |
Partager