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 :

Importer données depuis Excel


Sujet :

MS SQL Server

  1. #1
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut Importer données depuis Excel
    Bonjour à tous,

    J'ai vu pas mal de sujet à propos de mon problème, mais ça ne m'a pas trop aider. Je demande donc votre attention.

    J’ai un fichier Excel de plus de 2000 lignes à insérer dans une base de données SQL Server. En gros, ces lignes vont être insérées dans 2 tables, une table société et une table contact.
    Le format du fichier Excel n'est pas encore définitif (je peux modifier sa structure avant de l'exploiter).
    La première ligne du fichier correspond aux nom des colonnes.
    Il peut y avoir plusieurs contacts par société, je vous montre un exemple pour que ça soit plus simple

    nomSociete numTelephone nomContact prenomContact email
    ----------------------------------------------------------------
    Societe1 0000000000 Nom1 Prenom1 email1
    Societe1 0000000000 Nom2 Prenom2 email2
    Societe2 0000000001 Nom3 Prenom3 email3
    voilà en gros la forme qu'il a
    et dans ma base de données, mes 2 tables seront :
    Societe(id, nomSociete, numTelephone)
    Contact(id, nomContact, prenomContact, email, idSociete)

    Je ne vois pas comment traiter ça.
    Je suis sous SQL Server 2005.

    J'ai eu quelques indications sur le chat, on m'a parlé de Bulk Insert avec des curseurs mais je ne vois pas comment faire.

    Si quelqu'un aurait une piste pour moi
    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 882
    Points : 53 070
    Points
    53 070
    Billets dans le blog
    6
    Par défaut
    Transformez votre feuille Excel en CSV.
    Utilisez BCP.exe ou BULK INSERT.
    Définissez les délimiteur ( et fin de ligne (\n)
    Ne prenez pas la première ligne.

    A +

  3. #3
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Merci pour ta réponse rapide

    J'ai bien vu cette manière de faire, mais je ne vois pas comment gérer ma clé étrangère idSociete

    J'ai essayé quelque chose comme ça, j'ai compris comment fonctionne le Bulk insert

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    BULK INSERT maTable
    FROM 'monfichier.csv'
    WITH 
    ( 
    FIRSTROW = 2, -- La première est le nom des colonnes dans excel
    FIELDTERMINATOR = ';', -- Le séparateur est le ;
    ROWTERMINATOR = '\n', -- Séparateur des lignes
    MAXERRORS = 0
    )

    Mais c'est pour après, car une ligne de mon fichier Excel contient des données qui sont destinées à 2 tables différentes

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856

  5. #5
    Membre confirmé Avatar de tumoo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 309
    Points : 522
    Points
    522
    Par défaut
    Merci pour ce lien

    Je suis finalement parti vers une méthode moins "orthodoxe" mais je ne voyais pas comment faire autrement.
    J'ajouterai les clés manuellement dans mon fichier excel. J'ai tester, ça fonctionne correctement.

    merci à vous

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

Discussions similaires

  1. [AC-2000] Importation de données depuis Excel
    Par juju05 dans le forum Access
    Réponses: 7
    Dernier message: 01/08/2010, 17h11
  2. [AC-97] Import données depuis Excel sur Access
    Par Joselito2 dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/06/2010, 11h47
  3. [Débutant] importer des données depuis Excel
    Par canary dans le forum MATLAB
    Réponses: 9
    Dernier message: 02/05/2010, 18h03
  4. importer et exporter des données depuis excel
    Par thonyyzz dans le forum C++
    Réponses: 2
    Dernier message: 22/04/2008, 20h18
  5. [VB.NET] Import donnes d'excel : chiffres et lettres
    Par JohnGT dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/10/2004, 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