Trigger de maj

Soyez le premier à donner votre avis sur cette source.

Vue 15 411 fois - Téléchargée 863 fois

Description

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

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

farfarawi
Messages postés
13
Date d'inscription
samedi 25 février 2012
Statut
Membre
Dernière intervention
4 mars 2013
3 -
bonjour j'ai une petite question j'ai une gestion de stock et j'ai 3 table
Entrer( code_article , quantite )
Sortie (code_article , quantite_sortie,date)
Quantite_final_stock(code_article,quantite_initial,quantite_sortie,date,quantite_final)

je rentrer les articles dans la table entrer
et je rentrer les sorties dans la table sortie pour historiser les transactions
ma question est :
Coment faire pour creer un trigger qui va calculer la quantite_final à chaque fois que je rentre une nouvelle quantite ou je sors une quantite .

Merci

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.