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 SQL Server Discussion :

[BULK INSERT] import de certaines colonnes uniquement


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Points : 58
    Points
    58
    Par défaut [BULK INSERT] import de certaines colonnes uniquement
    Bonjour,

    je fais des imports de fichiers dans une base SQL SERVER 2000.
    Jusque là j'utilisais DTS avec des "Local Packages".

    Cette solution est relativement simple et complète mais je bloque sur un point, voici le principe de mon import :

    1. purge de la table
    2. insertion des données du fichier

    Ainsi je lance par batch une exécution journalière de ce traitement.
    Mais en cas de problème pendant la phase d'import ma table à déjà été purgée... donc le temps d'identifier le problème impossible de travailler.

    Donc je souhaite faire une transaction globale et un rollback du delete+insert si un problème à lieu.
    Et je n'ai pas trouvé de solution avec DTS.

    Donc je me suis orienté vers l'écriture d'une procédure stockée avec un BULK INSERT et la sa fontionne très bien, sauf que :
    (j'utilise un fichier fmt créé avec bcp)
    je n'arrive pas à configurer mon import pour dire je ne veux pas telle ou telle colonne.

    Voici un exemple du fichier que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8.0
    5
    1       SQLCHAR       0       15      ""                        1     COAP                French_CI_AS
    2       SQLCHAR       0       3       ""                        2     IDAP                French_CI_AS
    3       SQLCHAR       0       10      ""                        3     CREAT                French_CI_AS
    4       SQLCHAR       0       10      ""                        4     MODIF                French_CI_AS
    5       SQLCHAR       0       8       "\r\n"                    5     USER                French_CI_AS

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 52
    Points : 62
    Points
    62
    Par défaut
    Bonjour,
    ti tu veux absolument utiliser ce format soit :
    - tu passes par une table tempo ou temporaire
    - tu utilises OPENROWSET avec l'option bulk
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO TA_TABLE
    SELECT Data.COAP , Data.IDAP, etc
    FROM OPENROWSET( BULK 'LECTEUR:\CHEMIN_FICHIER_DONNEES.txt', 
       FORMATFILE = 'LECTEUR:\CHEMIN_FICHIER_FORMAT.fmt') AS Data;
    @+

Discussions similaires

  1. Affichage de certaines colonnes uniquement en debug
    Par delphy44 dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 21/12/2009, 14h48
  2. BULK INSERT et nombre de colonnes variable
    Par hannii dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 20/07/2009, 20h02
  3. Import csv via bulk insert
    Par DanaX dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 15/11/2008, 19h03
  4. insertion dans table à colonne unique identity
    Par dev-man dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/01/2007, 17h06
  5. Comment préciser nom de la colonne pour un Bulk Insert
    Par jeff37 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/06/2004, 17h05

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