ce trigger mise a jour le stock apres l insertion ou sepretion oubien la modification du ligne de commande
Source / Exemple :
create database exercice
-- creation de latable article
create table article(
numart int primary key,
stock int)
-- creation de latable ligne commande
create table lgcommande(
numlgcmd int primary key,
lgart int foreign key references article,
quantite int)
---------------------------------------------------------------------
-- Ce trigger va mettre a jour les stocks des articles qui sont suivi en lgcommande
create trigger majarticle
on lgcommande
after delete,insert ,update
as
begin
declare @s int,@lgart int,@q int
select @lgart =lgart,@q=quantite from deleted
update article
set stock=stock+@q where @lgart=numart
set @q=0
select @lgart =lgart,@q=quantite from inserted
select @s=stock from article where @lgart=numart
if @s< @q
begin
print 'desole stock n est pas disponible commadez une quantite<= '+convert(varchar,@s)
rollback transaction
end
else begin
update article
set stock=stock-@q where @lgart=numart
end
end
-----------------------------------------------------------------------------
/* Exemple de l'execution du trigger */
select * from lgcommande
select* from article
insert into article values(1,100)
insert into lgcommande values(65,1,26)
select * from lgcommande
select* from article
delete from article where numart=1
select * from lgcommande
select* from article
delete lgcommande where numlgcmd=65
select * from lgcommande
select* from article
update lgcommande
set quantite=11
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.