Mise à jour d'un solde de commande lors d'une livraison par déclencheur [MSDE 2000]
Le
Pierre Fauconnier
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:
--
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
--
Mais je n'arrive pas à valider une modification dans ma table tLivraisons.
Où fais-je l'erreur?
D'avance, merci pour votre aide et votre patience.
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
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:
--
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
--
Mais je n'arrive pas à valider une modification dans ma table tLivraisons.
Où fais-je l'erreur?
D'avance, merci pour votre aide et votre patience.
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci

Poser une question


C'est inner join INSERTED (pas UPDATED)
oui il en faut ;-)))
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les archives : http://groups.google.com/group/micr...fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Merci d'en avoir ;-)
Bonne fin de semaine
--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Les choses qui n'ont rien en commun ont en commun qu'elles n'ont rien en
commun"
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Oliv'" de news: