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 :

[SSIS] update de table en SSIS


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut [SSIS] update de table en SSIS
    Bonjour,

    Je travaille avec SQL Server 2005 SP1 et SSIS.
    Je dois faire une différence entre deux tables chacune sur leur base respective:
    tableA(identifiant, libellé) sur BaseA
    tableB(identifiant, libellé) sur BaseB

    Au moyen de SSIS, j'arrive bien à envoyer les données qui existent sur la tableA de la baseA vers la tableB sur la baseB. Par contre je n'arrive pas à mettre à jour les données de la tableA vers la tableB lorsque les identifiants existent sur les deux tables mais que le libellé est différent.

    Voyez vous comment faire un update de table?

    Merci

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Peut-être en posant les données dans une table tampon et en faisant la comparaison sur un des serveurs.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Ce n'est pas le problème de récupérer les données, mon problème est l'update. Je ne vois pas comment faire en SSIS pour updater une table. Faire une insertion , je sais mais un update ou un delete non.

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Ce que je veux dire, c'est :
    - tu insères tes données dans une table temporaire sur le serveur B... ah, mais :

    es-tu sur le même serveur ? Si oui, tu fais ta requête d'update en utilisant une simple tâche de requête SQL.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Je suis en effet sur le même serveur mais ça n'a pas d'importance
    En gros, j'ai une base de dev (Base A) qui où l'on travaille sur des données de paramétrage pour des machines, ... et je souhaite mettre à jour une base de Prod (Base B) lorsque les paramétrages sont OK. Pour éviter d'avoir à tout supprimer, je souhaite mettre à jour la différence.

    J'ai bien penser à faire la "requête d'update en utilisant une simple tâche de requête SQL" mais premièrement, je ne vois pas comment ça fonctionne, deuxièmement, je n'ai pas trouvé d'exemple et troisièmement, je voulais savoir s'il existait une façon de le faire en SSIS sans passer par du code sql?

    Si vous avez des exemples complets ça m'interessent.

  6. #6
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    1) oui cela a de l'importance : si tu es sur le même serveur, tu peux le faire directement en code SQL

    2) le faire en SQL sera plus simple et plus rapide.

    Le code ressemblera à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE b
    SET libelle = a.libelle
    FROM BaseA.dbo.tableA a
    JOIN BaseB.dbo.tableB b ON a.identifiant = b.identifiant
    WHERE a.libelle <> b.libelle

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Février 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par rudib
    Bonjour,

    1) oui cela a de l'importance : si tu es sur le même serveur, tu peux le faire directement en code SQL

    2) le faire en SQL sera plus simple et plus rapide.

    Le code ressemblera à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE b
    SET libelle = a.libelle
    FROM BaseA.dbo.tableA a
    JOIN BaseB.dbo.tableB b ON a.identifiant = b.identifiant
    WHERE a.libelle <> b.libelle
    Pas évident.
    En effet lors de la mise à jour d'un flot important de données sous SSIS, il est préférable de récupérer dans une table temporaire l'ensemble des données de faire les modifications via le language de programmation puis de recharger l'ensemble dans la base.
    Cela est moins honéreux en temps.

    Cf. http://www.sqljunkies.com (En Anglais !)

  8. #8
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Citation Envoyé par kikigonzales
    Pas évident.
    En effet lors de la mise à jour d'un flot important de données sous SSIS, il est préférable de récupérer dans une table temporaire l'ensemble des données de faire les modifications via le language de programmation puis de recharger l'ensemble dans la base.
    Cela est moins honéreux en temps.

    Cf. http://www.sqljunkies.com (En Anglais !)
    C'est exactement ce dont je te parlais dans ma réponse: faire la mise à jour, en utilisant une table temporaire si tu veux (je cite mon post 2 : Peut-être en posant les données dans une table tampon et en faisant la comparaison sur un des serveurs). Le mettre dans une table temporaire n'est pas une solution automatiquement meilleure. C'est de l'optimisation SQL, et donc selon les cas. Dans tous les cas, c'est bien en faisant du code SQL.

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Bonjour je voulais savoir sous SSIS comment joindre 3 colonnes venant de 3 tables différentes (mais de la même base de données), dans une une seule et même colonne (d'une autre DB que j'ai crée)?
    Merci

Discussions similaires

  1. [SSIS] Débutant Création table
    Par luc_chivas dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/04/2009, 12h58
  2. [SSIS][2k5] Plusieurs tables en destination
    Par verbal34 dans le forum SSIS
    Réponses: 1
    Dernier message: 12/10/2008, 00h43
  3. [SSIS][2008]Mesures table de faits
    Par matb33 dans le forum SSIS
    Réponses: 2
    Dernier message: 25/06/2008, 17h07
  4. Réponses: 2
    Dernier message: 10/04/2008, 15h12
  5. SSIS Export de tables probleme Separateur
    Par sunshine2004 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/11/2007, 23h31

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