Trigger de vérification et de mise à jour
Bonjour,
J'ai un soucis sur la réalisation d'un trigger.
Je m'explique, j'ai 3 tables, COMMANDE, BL et BL_Ligne.
Une COMMANDE peut avoir plusieurs BL, un BL n'appartient qu'a une COMMANDE.
Un BL peut avoir plusieurs BL_Ligne et un BL_Ligne n'appartient qu'a un BL.
Je souhaite qu'a l'insert, l'update et le delete d'un BL, on vérifie que le BL est valide et que chaque BL_Ligne est Valide aussi.
Pour ça dans chacune des deux tables on à une propriété Valide de type booléen.
Si tous les BL d'une COMMANDE sont "Valide" et que tous les BL_Ligne des BL correspondant sont "Valide" aussi, on considère que COMMANDE est "Soldé".
Soldé est aussi un booléen, dans la table COMMANDE.
Mon trigger doit donc, en ayant à disposition l'Identifiant du BL et celui de la COMMANDE puisqu'il aura lieu au insert/update/delete d'un BL, vérifié que les BL_Lignes qui lui sont rattachés soient tous "Valide" et que le BL lui même soit "Valide".
Il doit de plus chercher tout les autres BL qui correspondent à la COMMANDE, à partir de l'IdCommande. Et donc vérifié de nouveau la validité des BL et des BL_Ligne.
Je sais pas si c'est pas un peu confus ce que je raconte.
Si vous avez des questions, hésité pas. :mrgreen:
J'avais fait un petit bout de code complètement faux, mais bon, c'est juste pour vous montrez que j'ai chercher un peu. :aie:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| BEGIN
for each row(
SELECT BON_LIVRAISON_LIGNE.Solde
FROM BON_LIVRAISON
INNER JOIN BON_LIVRAISON_LIGNE ON BON_LIVRAISON_LIGNE.IdBonLivraison = BON_LIVRAISON.IdBonLivraison
WHERE BON_LIVRAISON.IdCommande = @IdCOmmande
)
IF BON_LIVRAISON_LIGNE.Solde = 0
@Count = 1
end loop;
IF @Count = 0
UPDATE COMMANDE SET Commande.Solde = 1
END |
Merci d'avance pour toute aide apportée.