IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[MSDE 2000] Mise à jour d'un solde de commande


Sujet :

Langage SQL

  1. #1
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 925
    Points
    55 925
    Billets dans le blog
    131
    Par défaut [MSDE 2000] Mise à jour d'un solde de commande
    Bonjour

    Dans le cadre d'une gestion de commande, je cherche à mettre à jour
    automatiquement un solde à livrer.

    J'ai une table tCommandes avec un clé primaire ComID et un champ ComSol qui
    contient le solde à livrer.
    J'ai une table tLivraisons avec un champ ComID et un champ LivQte.

    A l'ajout d'une nouvelle livraison, j'ai un déclencheur qui retranche la qté
    livrée de tLivraisons du champ ComSol de la table tCommandes.

    Je souhaite que ComSol de tCommandes soit mis à jour lors d'une modification
    de tLivraisons.

    Exemple.
    J'ai un ComSol de 500 dans tCommandes pour une commande X.
    J'effectue une livraison de 200 pour la commande X et Comsol est mis à jour
    à 300.
    Je modifie cette livraison et change la qté de 200 vers 400. ComSol doit
    refléter cette modification et être mis à jour à 100.
    Dans tCommandes, j'ai donc ComSol = ComSol + deleted.livqte - updated.livqte
    Pour cela, j'utilise le déclencheur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ALTER TRIGGER ModifLivraison
    ON dbo.tLivraisons
    for update
    as
    if update (livqte)
    begin
        update tcommandes set comsol = comsol + d.livqte - u.livqte from 
    tcommandes c inner join deleted d on c.comid =         d.comid inner join 
    updated u on c.comid = u.comid
    end
    Mais je n'arrive pas à valider une modification dans ma table tLivraisons.

    Où fais-je l'erreur?

    D'avance, merci pour votre aide et votre patience.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 925
    Points
    55 925
    Billets dans le blog
    131
    Par défaut
    Bonjour

    ayant trouvé la réponse sur un autre forum, je livre ici la réponse, à toutes fins utiles
    La table à prendre en compte n'est pas UPDATED mais INSERTED.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Word 2000] Mise à jour automatique d'un champ
    Par texas2607 dans le forum Word
    Réponses: 12
    Dernier message: 13/09/2007, 12h23
  2. [Access 2000] Mise a jour sur un IN
    Par LeXo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 14/05/2007, 14h29
  3. [Access 2000] Mise à jour colonne
    Par grotoumou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/11/2006, 14h10
  4. probleme de mise a jour de 2000 versw 2003
    Par pierrot10 dans le forum Windows Serveur
    Réponses: 8
    Dernier message: 24/07/2006, 14h19
  5. [MSDE][Deploiement] Mise à jour de database lors d'Upgrade
    Par juniorAl dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/07/2005, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo