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:
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
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
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
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
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)
je ne sais pas, est ce que c'est correcte svp aidez moi
merci de votre attention