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 :

implémenter une table à partir de CSV, selection des nouvelles données du fichier


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 200
    Par défaut implémenter une table à partir de CSV, selection des nouvelles données du fichier
    Bonjour,

    je dispose d'un import de base de données sous fichier CSV,
    j'aimerai mettre ces données dans un entrepot à l'aide de visio.
    Aussi j'aimerai que toute les lignes qui sont déja présentes dansla table MSSS ne soit pas ré écrite


    j'ai alors selectionner "source de fichier plat" , "conversion de données" (pr passer en unicode sinon ça marché pa) et puis "destination OLEDB"
    o premier passage la table est remplis,
    ensuite si je rajoute des données dans mon fichier CSV, ça ne marche plus, (puisque les premieres données ne peuvent pas re entrer ds la table) il me faudrait alors verifier si la ligne est présente ou non dans la table.
    je n'ai pas d'id, il faut que je compare le nom ET le jour ET le mois ET la date ET l'heure
    pour distinguer chaque ligne.

    Je vous remercie de votre aide, je débute en sql server et je lutte un peu

  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 992
    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 992
    Billets dans le blog
    6
    Par défaut
    Insérez à chaque fois votre fichier CSV dans une table tampon préalablement vidée (une table qui n'est pas votre table de production, mais qui a la même structure).
    Ensuite faite une requête d'insertion avec une sous requête SELECT combinée qui ne prend en compte que vos valeurs.

    Exemple soit la table tampon T_TPN_MA_TABLE et la table de production T_MA_TABLE ayant strictement les mêmes structures :
    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
    -- vidage
    TRUNCATE TABLE T_TPN_MA_TABLE;
    -- insertion depuis fichier (sans passer par toutes ces merdes graphiques) :
    BULK INSERT INTO T_TPN_MA_TABLE 
    FROM  'C:\MonRep\MonFichier.csv';
    -- insertion dans la table de production
    INSERT INTO T_MA_TABLE
    SELECT *
    FROM   T_TPN_MA_TABLE AS Timport
           LEFT OUTER JOIN T_MA_TABLE AS Tcible
                ON Timport.Nom = Tcible.Nom
                   AND  Timport.Jour = Tcible.Jou
                   AND  Timport.Mois = Tcible.Mois
                   AND  Timport.Date = Tcible.Date
                   AND  Timport.Heure = Tcible.Heure
    WHERE  Tcible.UneColonne IS NULL;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [2008R2] Remplir une table à partir de certains champs des autres tables
    Par aounidevlop dans le forum Développement
    Réponses: 5
    Dernier message: 20/01/2015, 12h05
  2. mettre à jour une table à partir d'un select
    Par Peanut dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/11/2007, 17h29
  3. Réponses: 1
    Dernier message: 23/01/2006, 18h53
  4. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  5. Réponses: 2
    Dernier message: 15/06/2005, 17h32

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