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 de jobs Discussion :

Migration de données Insertion dans MS SQL


Sujet :

Développement de jobs

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut Migration de données Insertion dans MS SQL
    Bonjour je travail sur un projet de migration.
    J'ai en entrée un fichier qui contient des données à reprendre.
    Ces données doivent être insérées dans une base SQL SERVER et plus particulièrement dans 2 tables A et B.

    Ma problématique est la suivante:
    Les données du fichier doivent être ajoutées dans la table B (ça j'ai réussi).

    A chaque ligne de mon fichier je dois faire un insert dans la table A et copier la ligne dans la table B avec au passage faire le lien entre A et B.

    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Pour qu'on puisse t'aider, il faudrait que tu nous expliques plus précisément ce que doit être ton "lien" entre A et B.

    S'il s'agit d'un ide (clé étrangère vers un enregistrement de B), tu devrais t'en sortir sans trop de difficultés avec un tMap (et sa fonction de "jointure").

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Oui effectivement ce n'était pas super clair, en effet le lien est une fk entre les 2 table.

    Dans mon fichier excel j'ai trois colonnes et n ligne, chaque colonne va correspondre à un enregistrement dans ma table B que je dois créer à partir des données du fichier et chaque ligne du fichier doit correspondre à 1 enregistrement dans la table A que je dois créer avec des constantes avec une pk auto incrémentée.
    Et pour finir il faut que fasse le lien entre les enregistrements de la table A et B (FK).
    Je pense donc essayer de modéliser cela avec Talend :
    1- Lire le fichier ligne par ligne. (ça je sais faire)
    2- Pour chaque ligne faire un insert dans la table A en gardant la PK (auto générée) qui me servira pour la FK avec la table B. (je ne sais comment m'y prendre)
    3- Pour les trois colonnes faire 3 insert dans la table B avec les données du fichier et la valeur de la PK de l'enregistrement de la table A.(je sais faire hormis le fait de récupérer l'id de la table A)

    J'espère que cela est un peu plus clair.

    Merci de votre aide car je ne maitrise pas encore l'outil.



    Je débute

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Si tu es certain que tu es le seul à écrire dans la table au moment où ton job va tourner, tu peux supposer que tes identifiants auto-incrémentés vont se suivre.

    Il te suffit donc de connaître le premier, que tu peux obtenir par une commande :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(id) FROM A;

    Tu stockes cet identifiant dans une variable que tu incrémente à chaque ligne créée dans la table A et que tu associes à l'enregistrement.

    Autre solution, plus propre, mais qui nécessite de connaître les spécificités de MS SQL et de savoir construire la "requête magique" qui donnera le résultat souhaité : tu passes par un tMssqlRow (au lieu d'un tMssqlOutput). Celui-ci t'offre plus de souplesse dans la requête que tu peux écrire. Ainsi, il est peut-être possible d'écrire une requête d'insertion qui en même temps te renvoie l'identifiant inséré.

    Ce genre de manipulation est par exemple possible sous Oracle... Sous MS SQL, je ne sais pas.

Discussions similaires

  1. Insert dans base sql erroné
    Par krapoulos dans le forum Langage
    Réponses: 1
    Dernier message: 18/10/2010, 06h14
  2. Réponses: 4
    Dernier message: 02/03/2009, 11h46
  3. [SQL] Problème insertion dans Base SQL après saisie d'un formulaire
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/05/2007, 13h44
  4. Insertion dans table SQL server (Trigger) Aidz moi SVP????
    Par pop bob dans le forum Développement
    Réponses: 2
    Dernier message: 30/07/2005, 23h55
  5. uniqueidentifier et INSERT dans MS-SQL
    Par Dlfine dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 12/08/2004, 11h29

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