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

Développement SQL Server Discussion :

[2008] INSERT à partir d'un SELECT


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Points : 42
    Points
    42
    Par défaut [2008] INSERT à partir d'un SELECT
    Bonjour,

    Je cherche à insérer une ligne dans une table en effectuant une sélection sur une ligne déjà existante, en valorisant une colonne de ma nouvelle ligne à partir d'une autre colonne de la ligne existante, qui est elle-même mise à jour dans ma nouvelle ligne.

    Pour être plus clair voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO table (colonne1, colonne2, colonne3)
    SELECT colonne1, colonne3, 'ccc'
    FROM table
    WHERE colonne1 = 'xxx'

    Si dans ma ligne d'origine j'ai les données suivantes:

    'xxx' | 'aaa' | 'bbb'

    Je veux que la ligne insérée soit celle-ci :

    'xxx' | 'bbb' | 'ccc'


    Mais j'obtiens :

    'xxx' | 'ccc' | 'ccc'


    Comme si la valeur de colonne3 utilisée pour valoriser la colonne2 n'était pas celle de la ligne d'origine mais celle de la ligne que j'insère.

    Est-ce normal ?

    Comment peut-on contourner ce problème ?



    Merci d'avance pour vos réponses.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Citation Envoyé par Laaris Voir le message
    Est-ce normal ?
    Non !

    Soit vous avez fait une erreur dans l'analyse du résultat (j'imagine que votre table contient bien plus de données qu'une seule ligne...), soit vous avez fait autrement que comme vous le décrivez ici.

    Peut-être aussi une simple erreur dans votre requête. Ce genre d'erreur d'inattention qu'on ne voit plus quand on a le nez dedans depuis trop longtemps

    Donnez nous plus de détail, et ne simplifiez pas trop le contexte !

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 51
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Ce genre d'erreur d'inattention qu'on ne voit plus quand on a le nez dedans depuis trop longtemps
    C'est exactement cela, le temps d'aller déjeuner et la solution s'est présentée d'elle-même.
    La requête fait bien ce qu'elle doit faire mais il y avait un UPDATE erroné un peu plus loin qui remettait la mauvaise valeur.

    Désolé pour le dérangement.

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

Discussions similaires

  1. Problème d'insertion à partir d'un select
    Par ISID dans le forum PL/SQL
    Réponses: 5
    Dernier message: 05/11/2008, 09h42
  2. Probleme d'insertion à partir d'un select
    Par dubidon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/08/2008, 11h42
  3. une insertion à partir d'une selection + un champ fixe
    Par Smix007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2007, 14h59
  4. INSERT à partir d'un SELECT avec champ SERIAL
    Par bruno.wiesen dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/03/2007, 11h07
  5. INSERT à partir d'un SELECT
    Par bruno.wiesen dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/03/2007, 10h20

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