TRIGGER SQL SERVER

Résolu/Fermé
ramdane - 27 oct. 2007 à 23:44
 dornez - 5 mars 2011 à 22:00
Bonjour,
j'ai une base de donnée de trois tables reliées entre elles avec le sql server, table PRODUIT, table BON SORTIE et table DETAILBONSORTIE. je n'arrive pas a écrire un trigger qui me permet désque je saisie le champ QTESORTIE dans la table
DETAILBONSORTIE, automatiquement le champs STOCK de la table PRODUIT se met a jour, c-a-d le STOCK=STOCK-QTESORTIE.

SVP aider moi, je suis bloqué.

Merci
A voir également:

7 réponses

merci d'avoir répondu a mon secours,
je reformule ma question.

soit le table BONSORTIE (numbonsortie, datebs), la table DETAILBONSORTIE(numbonsortie, codeproduit,qtesortie) et la table
PRODUIT(codeproduit, description,stock).
en saisissant un BONSORTIE, je saisie aussi un enregistrement dans DETAILBONSORTIE, alors je veux un déclencheur qui
me permet désque je valide dans le champ qtesortie, la mise a jour du champ stock de la table PRODUIT se fait.
le nouveau stock ca sera stock=stock - qtesortie.

Merci de votre aide, je suis bloqué.
6
Comment executer une procedure stockée dans un trigger ? Merci.
2
Bonjour,
tu peut reformule la question mais avant il faut supprimer les relation entre les table ,par ce ke les trigger font les relation d integriter
1
Bonjour,
je tien de te dire ke: une ou un trigger ne peut pas etre lié a deux table ce la vous dire ke le trigger ke te sera utile c est on la lien a la table DETAILBONSORTIE ,je vait t expliquer ce la ds le code
create trigger insert
on DETAILBONSORTIE -- la table ki va declancher le trigger
for insert --au cours d insertion la table temporaire(insertede) va centenure tout les chan de la tabe DETAILBONSORTIE
as --apre le as on parle ke d SQL
if insert (qtesortie) --le trigger ila etre declancher si vous remlisser ce chan (qtesortie)
update PRODUIT --mise ajour
set stock=stock - qtesortie
from inserted -- la table tmporaire
where PRODUIT.codeproduit = inserted.codeproduit relation entre les deux table
go --sortire
dsl mais j ai pas pu teste ce code mais logiquement c juste

je ss pas sure mais essai de faire ce trigger son :
from inserted
where PRODUIT.codeproduit = inserted.codeproduit
1
Bonjour,
Merci beaucoup ca a bien marcher voila le code exacte.
au faite ca a aussi marcher sans enlever les relations avec les tables.

vous etes mon sauveur!!! MILLE MERCI

CREATE TRIGGER ins_detailbs ON detailbs
FOR INSERT
AS
IF UPDATE (qtesortie)
UPDATE produit set stock=stock-qtesortie
FROM INSERTED
WHERE produit.codeproduit=inserted.codeproduit ‘ relation entre les deux tables
GO
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,
oki alore supprimer les relation entre les table est aissie de faire un trigger ki prend en compte les relation
mais teste la entre deux table comme ca tu va compendre le fonction des trigger .
et merci atoi toi aussi car moi meme j avaiot un plaisire de faire cette trigger et de savoir kk bien marcher
0
adilol Messages postés 14 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 13 décembre 2009 1
17 avril 2008 à 07:08
salut tt le monde,

svp,j ai un probleme urgent,je voulais ecrire un trigger qui fait ca:

- si la date de la commande est moins que 3 jour de la date de livraison,il doit afficher un message d erreur.

voici en bas, en detail ce qu il doit faire le trigger



Pour une commande standard (achat d’un bouquet standard), la cyberboutique
garantit la disponibilité en inventaire des items composant le
bouquet seulement si la commande a été passée au moins 3 jours avant la
date de livraison. Pour les commandes standards effectuées moins de 3
jours avant la date de livraison, c’est le client qui assume le risque. Il est
donc très important d’informer ces clients d’une éventuelle pénurie. L’état
de la commande sera alors « VINV »
0
a koi sér le FOR dans la creation de declancheur !!!
j croi resoudr tt lé problém !
ya t"il un repnc !?
0