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 :

Copie de données d'une table vers une autre en récupérant les ID


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Copie de données d'une table vers une autre en récupérant les ID
    Bonjour,

    Quelle pourrait être la requête SQL à adopter pour réaliser la manipulation suivant ?

    J'ai une table avec des doublons (oui ca a été mal fait au départ et je dois ratraper le tir...) que je dois insérer dans une autre.

    Donc je fais INSERT INTO cible1 SELECT DISTINCT val1 FROM source

    ca ca va... mais maintenant, je dois récupérer l'id de val1 dans cible1 SELECT id FROM cible1 WHERE val1 = valeur

    sauf que valeur je le récupère d'un nouvel INSERT INTO cible2 SELECT DISTINCT x, y, z, valeur FROM source

    la structure de cible2 est x, y, z, fk_id

    Qqn aurait-il une idée ?

    D'avance merci,
    Nabu

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Sous réserve que val1 soit parfaitement unique (ce que vous devriez faire respecter par l'ajout d'une contrainte d'unicité), il vous faut écrire la requête UPDATE suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE		dbo.cible2
    SET		id = C2.id
    FROM		dbo.cible2 AS C2
    INNER JOIN	dbo.cible1 AS C1
    			ON C2.val = C1.val
    Celle ci va copier dans la colonne id de la table dbo.cible2 la valeur de id dans la table dbo.cible1, pour les valeurs de la colonne val qui sont égales dans les deux tables.

    @++

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. [AC-2007] Copie d'un ou plusieurs enregistrements d'une table vers une autre
    Par facedeharicot dans le forum VBA Access
    Réponses: 7
    Dernier message: 22/08/2011, 08h34
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. [VB.NET] Copie d'une table d'une DB vers une autre
    Par SergeF dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/11/2004, 09h54

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