Bonjour,
jai un trigger ke j'arrive pas a realiser .en fait jai 3 tables avec les champs suivant: voila le code de creation de ses tables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ---les triggers create database commerciale create table produit ( no_pdt int not null primary key, design_pdt varchar(50), pu float not null, stock int default 0) create table commande( no_commande int not null primary key, date_com datetime, montant float default 0) create table ligneCommand( no_cde int not null, qte int not null, no_pdt int not null Foreign key references produit(no_pdt), pu float, montant float, constraint pk primary key(no_pdt,no_cde), constraint fk_com foreign key(no_cde) references commande(no_commande))
les questions sont les suivantes:
1)lorsquil ya une nouvelle ligne de commande ,le prix unitaire actuel du produit est enregistré dans la ligne de commande .la quantité en stock du produit concerné est diminué .le montant de la commande est augmanté du montant de la ligne
la reponse est la suivante:
--question 1:
2)a chake mise a jour d'une ligne de commande il faut mettre a jour le montant de la commande et eventuelelmnt les quantité en stock
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 create trigger trig on ligneCommande for insert as if insert(no_cde) SET stock=stock-qte set commande.montant=montant+(qte*pu) from inserted where commande.no_commande=inserted.no_cde go
3)idem en cas de suppression d'une ligne de commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TRIGGER commandes_update ON ldc AFTER UPDATE AS IF UPDATE(qte) BEGIN lmontant=qte*pu UPDATE produit SET stock = stock - qte,set montant=montant-lmontant FROM produit AS a JOIN inserted AS b ON (a.no_pdt = b.no_pdt) ENd
je ne sais pas, est ce que c'est correcte svp aidez moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TRIGGER commandes_delete ON ldv AFTER DELETE AS UPDATE produit SET stock = stock - qte FROM produit AS a JOIN deleted AS b ON (a.no_pdt= b.no_pdt)
merci de votre attention
Partager