TRIGGER SQL SERVER

Résolu
ramdane -  
 dornez -
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
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. ramdane
     
    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
  2. tarokhan
     
    Comment executer une procedure stockée dans un trigger ? Merci.
    2
  3. wol
     
    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
  4. M
     
    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
    1. ramdane
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. M
     
    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
  7. adilol Messages postés 10 Date d'inscription   Statut Membre 1
     
    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
  8. dornez
     
    a koi sér le FOR dans la creation de declancheur !!!
    j croi resoudr tt lé problém !
    ya t"il un repnc !?
    0