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

Outils SQL Server Discussion :

Différence BCP / BULK INSERT


Sujet :

Outils SQL Server

  1. #1
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut Différence BCP / BULK INSERT
    Bonjour,

    Je dois importer des données provenant de fichiers CSV dans une base SQLSERVER. J'ai vu qu'il y avait 2 solutions, ou plus peut-être ? Mais je ne connais pas bien leur fonctionnement. J'ai vu que BCP se lance via une console windows et que BULK INSERT se lance directement dans un client SQLSERVER.

    Ce que je souhaiterais vraiment éclaircir est la visibilité des fichiers. Y'a t-il un cas ou les fichiers doivent absolument être visibles par le serveur de SGBD ? Et cet outil bcp, comment est-il installé ?

    Merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ac/dc Voir le message
    Y'a t-il un cas ou les fichiers doivent absolument être visibles par le serveur de SGBD ?
    Ben c'est mieux qu'il soit visible par le serveur.
    On peut sûrement passer par un client pour faire ça sans la visibilité du trafic.
    Mais attention au trafic réseau si c'est un gros fichier...
    Quel est le problème?

    http://msdn.microsoft.com/en-us/library/ms162802.aspx

  3. #3
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    Le truc, c'est qu'il faut que je lance un batch, pour insérer mes données en base. C'est un batch lancé ensuite par un client, donc il faut que j'utilise la méthode la plus facile. D'où ma question, si le client peut lancer ça de son poste, réponse oui, mais que doit-il installer pour utiliser l'une ou l'autre méthode auparavant ? Et les fichiers ne sont pas forcément accessibles par le serveur si le client lance ça depuis un poste quelconque ...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ac/dc Voir le message
    mais que doit-il installer pour utiliser l'une ou l'autre méthode auparavant ?
    Pour BCP, j'ai trouvé ça pour toi, parce que je suis bien sympa et que j'ai ma ceinture noire de google...

    Microsoft SQL Server 2008 Command Line Utilities

    The SQLCMD utility allows users to connect, send Transact-SQL batches, and output rowset information from SQL Server 7.0, SQL Server 2000, SQL Server 2005, and SQL Server 2008 instances. The bcp utility bulk copies data between an instance of Microsoft SQL Server 2008 and a data file in a user-specified format. The bcp utility can be used to import large numbers of new rows into SQL Server tables or to export data out of tables into data files.

    Note: This component also requires both Windows Installer 4.5 and Microsoft SQL Server Native Client (which is another component available from this page).
    http://www.microsoft.com/downloads/e...displaylang=en

  5. #5
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    Merci,

    Oui donc en gros aucune différence entre les 2 méthodes. Simplement que :

    BULK INSERT : Lancement via une commande "slqcmd.exe ..."
    BCP : Lancement via l'outil BCP en console : "bcp.exe ..."

    Les 2 outils s'installent dans le répertoire :
    C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    salut,

    une différence au niveau du mode d'exécution à prendre en considération. Le mieux est de comparer les 2 modes en faisant un test (bulk insert avec fichiers copiés sur le serveur ou bcp depuis le client)

    cf. http://msdn.microsoft.com/en-us/library/ms187042.aspx (In-Process vs. Out-of-Process Operation)

    Avec bulk insert, les fichiers doivent être visibles par l'instance. Avec BCP.exe, le fichier à importer doit être visible par le programme BCP.exe.

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    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 862
    Points : 53 013
    Points
    53 013
    Billets dans le blog
    6
    Par défaut
    BULK INSERT utilise bcp. Ces commandes ne sont disponible que sur le serveur. Bcp étant installé avec l'instance SQL Server. Vous ne pouvez donc pas lancer bcp sur un poste client, alors que vous pouvez vous connecter au serveur SQL et exécuter un BULK INSERT depuis un poste client.

    A +

  8. #8
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    Ah oui donc ça change là ....

    Je préfère lancer le batch depuis n'importe quel poste, donc la seule solution est bcp si je comprends bien car le serveur n'a pas forcément accès aux fichiers ...

  9. #9
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    Pourquoi je ne pourrais pas lancer de bcp depuis un poste client ?

    Sur mon poste, j'ai accès à BCP, je me connecte ensuite à un serveur SQL pour y intégrer mes données
    BCP se trouve sur mon poste dans :
    C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    BULK INSERT utilise bcp. Ces commandes ne sont disponible que sur le serveur. Bcp étant installé avec l'instance SQL Server. Vous ne pouvez donc pas lancer bcp sur un poste client, alors que vous pouvez vous connecter au serveur SQL et exécuter un BULK INSERT depuis un poste client.
    C'est faux.

    Vous pouvez évidemment installer BCP.exe sur votre poste client.
    BULK INSERT n'utilise pas bcp.exe, ce sont 2 fonctionnalités bien distinctes.

    Merci pour l'apport de confusion dans le post.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    BULK INSERT utilise bcp. Ces commandes ne sont disponible que sur le serveur. Bcp étant installé avec l'instance SQL Server. Vous ne pouvez donc pas lancer bcp sur un poste client, alors que vous pouvez vous connecter au serveur SQL et exécuter un BULK INSERT depuis un poste client.
    Es-tu sûr de ce point? Je n'ai pas fait le test mais si j'en crois le lien que j'ai mis ci-dessus, MS ne parle pas d'autre chose qu'une installation client pour utiliser BCP.

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    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 862
    Points : 53 013
    Points
    53 013
    Billets dans le blog
    6
    Par défaut
    Bien entendu si vous installez les outils client sur le poste client, vous aurez bcp.

    A +

  13. #13
    Membre habitué Avatar de ac/dc
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 369
    Points : 197
    Points
    197
    Par défaut
    Merci pour vos éclaircissements.

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

Discussions similaires

  1. Export BCP / Import BULK INSERT :
    Par nsjnsj dans le forum Administration
    Réponses: 4
    Dernier message: 19/11/2010, 18h08
  2. [2K5] BULK INSERT / BCP / Unicode / BOM / UTF-16
    Par mioux dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/11/2009, 15h11
  3. Réponses: 2
    Dernier message: 21/03/2007, 11h15
  4. BULK INSERT
    Par jeremie dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 12/03/2004, 13h49
  5. Bulk insert et caractère accentué
    Par slc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/04/2003, 12h52

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