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 :

mettre à jour une table à partir d'un select


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 412
    Points : 149
    Points
    149
    Par défaut mettre à jour une table à partir d'un select
    Bonjour, une petite question (qui vous semblera probablement basique ) :

    en simplifiant, dans une procédure stockée (SQL Server 2005) j'ai une table T :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t1 |t2     |t3
     W | NULL  | NULL
     X | A     | NULL
     Y | B     | NULL
    une requête (select avec 4 jointures...) qui me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A | aa
    B | bb1
    B | bb2
    et dont je voudrais bien évidemment insérer le résultat dans T :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    t1 |t2     |t3
     W | NULL  | NULL
     X | A     | aa
     Y | B     | bb1
     Y | B     | bb2
    Quelle est la (meilleure) solution ?

    A noter que je n'ai pas de clé primaire sur T, mais que je peux éventuellement en créér une automatique (je sais pas comment ça se fait sous SQL Server, mais je me doute que ça existe).

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 63
    Points : 71
    Points
    71
    Par défaut
    En fait tu ne peux pas par update enfin je ne pense pas mais par un ordre insert ca pourrait fonctionner

  3. #3
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par Lux08 Voir le message
    En fait tu ne peux pas par update enfin je ne pense pas mais par un ordre insert ca pourrait fonctionner
    Oui, j'ai pensé à :
    pour chaque ligne faire 1 update suivi de n-1 insert
    ou 1 delete suivi de n insert
    mais ça oblige à stocker le résultat du select dans une table temporaire et de faire tout un bloc de code avec plein de test pour un truc qui me paraît être un problème classique.

    Ca m'étonne qu'on ne puisse pas faire ça avec une requête...

    Sinon je suis obligé de sauver le résultat du select et de faire une bête jointure que je sauve dans une 3e table

  4. #4
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    tu veux faire un update et rajouter des lignes, ça fait 2 opérations de toute façon

  5. #5
    Membre habitué
    Avatar de Peanut
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    Bon.

    Du coup j'ai mis mon select dans une 2e table,
    puis j'ai fait une jointure avec la 1ère table pour en créer une 3e,
    et j'ai effacé les 2 premières...

Discussions similaires

  1. Réponses: 12
    Dernier message: 14/06/2011, 10h48
  2. Mettre à jour une table à partir de 3 dropdownlist
    Par nomadetech dans le forum ASP.NET
    Réponses: 0
    Dernier message: 25/05/2011, 17h24
  3. [AC-2007] Mettre à jour une table à partir de données d'une requette
    Par didi_morel dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/01/2011, 14h50
  4. Mettre à jour une table à partir d'une autre
    Par jjker dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/06/2009, 11h20
  5. Réponses: 1
    Dernier message: 23/01/2006, 18h53

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