Bonjour
Dans le cadre d'une gestion de commande, je cherche à mettre à jour
automatiquement un solde à livrer.
J'ai une table tCommandes avec un clé primaire ComID et un champ ComSol qui
contient le solde à livrer.
J'ai une table tLivraisons avec un champ ComID et un champ LivQte.
A l'ajout d'une nouvelle livraison, j'ai un déclencheur qui retranche la qté
livrée de tLivraisons du champ ComSol de la table tCommandes.
Je souhaite que ComSol de tCommandes soit mis à jour lors d'une modification
de tLivraisons.
Exemple.
J'ai un ComSol de 500 dans tCommandes pour une commande X.
J'effectue une livraison de 200 pour la commande X et Comsol est mis à jour
à 300.
Je modifie cette livraison et change la qté de 200 vers 400. ComSol doit
refléter cette modification et être mis à jour à 100.
Dans tCommandes, j'ai donc ComSol = ComSol + deleted.livqte - updated.livqte
Pour cela, j'utilise le déclencheur suivant:
Mais je n'arrive pas à valider une modification dans ma table tLivraisons.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ALTER TRIGGER ModifLivraison ON dbo.tLivraisons for update as if update (livqte) begin update tcommandes set comsol = comsol + d.livqte - u.livqte from tcommandes c inner join deleted d on c.comid = d.comid inner join updated u on c.comid = u.comid end
Où fais-je l'erreur?
D'avance, merci pour votre aide et votre patience.
Partager