p
u
b
l
i
c
i
t
é
publicité

Discussion: UPDATE multiple

  1. #1
    Invité de passage
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Alimentation

    Informations forums :
    Inscription : avril 2012
    Messages : 3
    Points : 2
    Points
    2

    Par défaut UPDATE multiple

    Bonjour,

    Est-il possible d'effectuer un update multiple comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE F_DOCLIGNE 
    SET GTIN = (SELECT CO_CodeBarre FROM F_CONDITION WHERE (AR_Ref = @AR_Ref) AND (LEFT(CO_CodeBarre,1) = @Type_PCB))
    SET CB = (SELECT EC_Quantite FROM F_CONDITION WHERE (AR_Ref = @AR_Ref) AND (LEFT(CO_CodeBarre,1) = @Type_PCB))
    WHERE F_DOCLIGNE.CbMarq = @cbMarq
    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    Consultant en SSII et ingénieur CNAM Paris (spécialité SI)
    Inscrit en
    février 2009
    Messages
    5 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant en SSII et ingénieur CNAM Paris (spécialité SI)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2009
    Messages : 5 068
    Points : 17 610
    Points
    17 610

    Par défaut

    Bonjour.

    Oui mais pas de la façon que vous indiquez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE maTable
    SET colonne1 = 'value1',
    colonne2 = 'value2',
    -- ...
    WHERE -- ...
    Cordialement,
    Idriss
    mes cours sur DVP | initiation aux bases de données relationnelles | FAQ Linux | FAQ tests
    la programmation Shell | bonnes pratiques Bash | exercices shells scripts & Bash corrigés
    Merci aussi de lire les règles du club

    "Forgiveness does not change the past, but it does enlarge the future." (Paul Boese)
    Traduction approximative : le pardon ne change pas le passé mais élargit l'horizon de l'avenir.

  3. #3
    Invité de passage
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Alimentation

    Informations forums :
    Inscription : avril 2012
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    Merci pour votre aide.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur d'études en décisionnel
    Inscrit en
    septembre 2008
    Messages
    7 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études en décisionnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2008
    Messages : 7 165
    Points : 15 025
    Points
    15 025

    Par défaut

    Vous devriez aussi pouvoir l'écrire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE F_DOCLIGNE 
       SET (GTIN, CB) = (SELECT CO_CodeBarre, EC_Quantite
                           FROM F_CONDITION
                          WHERE AR_Ref = @AR_Ref
                            AND LEFT(CO_CodeBarre,1) = @Type_PCB))
     WHERE F_DOCLIGNE.CbMarq = @cbMarq;
    Les @ me font penser à SQL-Server.
    N'oubliez pas de préciser le schéma (dbo par défaut) devant le nom de vos tables.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    3 672
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 3 672
    Points : 7 038
    Points
    7 038

    Par défaut

    Citation Envoyé par Waldar Voir le message
    Les @ me font penser à SQL-Server.
    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE F_DOCLIGNE 
    	SET GTIN = CO_CodeBarre 
    	,CB = EC_Quantite
    FROM	F_DOCLIGNE
    LEFT JOIN F_CONDITION 
    	ON		AR_Ref = @AR_Ref
    	AND		LEFT(CO_CodeBarre,1) = @Type_PCB
    Si vous ne voulez pas mettre à NULL les colonnes GTIN et CB pour les lignes de F_DOCLIGNE n'ayant pas de correspondance dans F_CONDITION, il faudra remplacer la jointure externe pas une jointure interne

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

Discussions similaires

  1. Update multiples et PHP
    Par nath-0-0 dans le forum PHP & MySQL
    Réponses: 5
    Dernier message: 24/04/2006, 12h48
  2. update multiple dans une meme colonne
    Par debdev dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/01/2006, 21h46
  3. Update multiple [8i]
    Par Endymion222 dans le forum Oracle
    Réponses: 3
    Dernier message: 10/01/2006, 09h46
  4. UPDATE multiples : un seul pris en compte
    Par balti dans le forum Requêtes
    Réponses: 7
    Dernier message: 29/12/2005, 12h02
  5. Réponses: 3
    Dernier message: 25/01/2005, 12h31

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