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

MS SQL Server Discussion :

Import data d'Excel ds 2 table lié par clé primaire


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 46
    Points
    46
    Par défaut [RESOLU]Import data d'Excel ds 2 table lié par clé primaire
    lu
    je cherche à importer ds 2 table sql les données présentes ds un tableau excel.
    sous sql server, g une table "index_ville" et une table "coord_client"

    ds SQL service entreprise manager, je me sers de Local Package ds la partie Data Transformation Service.

    je sais faire un transform Data Task en un fichier Excel et une table de ma base
    mais là je dois pouvoir enregistrer le code des villes ds la table "index_ville" (ce que j'arrive à faire) puis en remplissant la table "coord_client" tjs a partir du mm fichier Excel me servir de la première table pour remplir mon champ index_ville ds la table "coord_client"
    .... et là je suis bloqué, je vois pas comment mettre mes conditions

    si qlq1 peut m'aider, merci

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Nous avons besoin des renseignements sur :
    1-le script de création de tes tables
    2-Un Jeu d'essai
    3-Un extrait de ton fichier excel
    4-Le resultat que tu veux avoir

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    mon fichier excel comporte les champs suivants (renseignement sur des clients):
    nom, prenom, adresse, ville, email

    moi dans ma BDD, j'ai 2 tables : table_client et table_ville
    table_client comporte : id,nom,prenom,adresse,email,id_ville

    table_ville comporte : id_ville,ville

    dc j'aimerais que via DTS, à partir de mon fichier excel, il remplisse la table "table_ville" , puis qu'ensuite il remplisse la table "table_client" en remplissant correctement le chp "id_ville" pour lié la bonne valeur ville qui était présente ds le fichier excel.

    comment puis je parametrer un tel effet ??

    thx

  4. #4
    En attente de confirmation mail
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par lord_paco
    mon fichier excel comporte les champs suivants (renseignement sur des clients):
    nom, prenom, adresse, ville, email

    moi dans ma BDD, j'ai 2 tables : table_client et table_ville
    table_client comporte : id,nom,prenom,adresse,email,id_ville

    table_ville comporte : id_ville,ville

    dc j'aimerais que via DTS, à partir de mon fichier excel, il remplisse la table "table_ville" , puis qu'ensuite il remplisse la table "table_client" en remplissant correctement le chp "id_ville" pour lié la bonne valeur ville qui était présente ds le fichier excel.

    comment puis je parametrer un tel effet ??

    thx
    Ce que je ferais : import de tout ton fichier excel dans une table temporaire.

    Ensuite tu crées les 2 tables 'client' et 'ville' avec les foreign keys nécessaires et tu fais les inserts à partir de ta table temporaire dans ces 2 tables.

    tu fais d'abord les inserts dans ta table 'ville' car un client doit habiter dans une ville qui existe déjà dans ta base.

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Je t'ai bien compris mais je ne crois pas que cela soit possible avec DTS (Enfin à ma connaissance). Je vous propose d'écrir un petit programme d'importation qui insert d'abord les villes ensuites les clients en faisant correspondre les id des villes.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    je suis d'accord avec toi mais où j'écris tout ça
    ce qui me pose problem c comment faire ça avec le DTS de Sql Manager .....
    quel outil utilisé ???

  7. #7
    En attente de confirmation mail
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par lord_paco
    je suis d'accord avec toi mais où j'écris tout ça
    ce qui me pose problem c comment faire ça avec le DTS de Sql Manager .....
    quel outil utilisé ???
    Mais il n'y a rien de compliqué.

    Via DTS, import de tout ton fichier excel dans une table temporaire.

    Ensuite tu fais 2 requêtes d'insertions à partir de cette table temporaire pour remplir les tables finales.

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Tu peux pas le faire facilement avec DTS de SQL serveur.
    Tu dois utiliser un language externe comme VB.
    Si vous connaissez également le transact sql, vous pouvez la solution de mr_qno.
    1-Creer la table temp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Create table Tempo
    (
      nom varchar(50) null,
      prenom varchar(50) null,
      Adresse varchar(150) null,
      Ville varchar(50) null,
      Email varchar(50) null,
    )
    2-Remplir la table par une importation
    3-Creer la table Ville
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Create table Ville
    (
      id_ville int identity(1,1) not null,
      ville varchar(50) null,
      Constraint pk_ville Primary Key (id_ville)
    )
    4-Peupler la table ville tout en évitant les doublons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    INSERT INTO Ville(Ville)
    SELECT ville from tempo
    WHERE ville not in (
                                 SELECT ville 
                                 FROM tempo
                                )
    5-Créer la table Client et la peupler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    --Création de la table client
    Create table Client
    (
      id
      nom varchar(50) null,
      prenom varchar(50) null,
      Adresse varchar(150) null,
      id_Ville int Foreign Key Reference Ville(id_ville),
      Email varchar(50) null,
      Constraint pk_client Primary Key (id)
    )
    --Inserer les clients
    INSERT INTO CLIENTS
    SELECT T.Nom,T.Prenom,T.Adresse,V.id_ville,T.EMail
    FROM Tempo T JOIN Ville V ON V.Ville=T.Ville
    Et le tour est joué.
    N'oublie pas de marquer résolu ton message.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  9. #9
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    As-tu déja jété un coup d'oeuil sur le site de Frédéric Brouard ?
    Si non fonce Ici

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  10. #10
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    oui je connais mais en fait ct plus tôt pr me servir de l'outil DTS
    car g pas que 2 tables a alimenté par une feuille excel

    c bcp plus général
    g plein de fichiers excel à basculer
    alors je pensais que je pouvais me servir de DTS pr construire ma migration de données ....

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Tu peux utiliser DTS
    Ici tu peux utiliser DTS.
    La tâche de requête contrôlée par les données t'offre la possibilité d'écrire un petit script à exécuter entre la lecture de chaque ligne de la table source et l'écriture dans la table de destination.
    Ce n'est pas évident à maîtriser mais il y a moyen de faire beaucoup de choses.

  12. #12
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    merci marc78 de réponde à un post aussi vieux

    mais j'ai finis par réussir. effectivement via un DTS, je charge la feuille Excel ds une table temporaire, ensuite j'utilise un script SQL (en me servant de CURSOR qui me permet de lire ligne par ligne et de faire un traitement spécifique pour alimenter 1 à n tables).

    merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/06/2007, 14h11
  2. [9i] Importer des données Excel dans une table
    Par oasma dans le forum SQL
    Réponses: 6
    Dernier message: 19/03/2007, 07h39
  3. Réponses: 9
    Dernier message: 30/05/2006, 17h55
  4. Importer une feuille excel dans une table Paradox ?
    Par Dalgo75 dans le forum Bases de données
    Réponses: 8
    Dernier message: 07/05/2006, 11h49
  5. Import de Données Excel dans une Table Access
    Par YLF dans le forum Access
    Réponses: 2
    Dernier message: 20/02/2006, 19h02

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