[ms sql serveur] import/export de donnees avec bcp

Soyez le premier à donner votre avis sur cette source.

Vue 38 484 fois - Téléchargée 1 254 fois

Description

[Ms sql serveur] Import/Export de donnees avec bcp
---------------------------------------------------

Il existe plusieurs possibilités d'exporter/importer des données
provenant d'une db.

Je ne vais pas toutes les enumerer, mais par contre je vais vous présenter un p'tit utilitaire nommé BCP qui s'utilise
en ligne de commande (DOS) et que j'ai découvert il y'a peu.

Vous verrez dans les exemples ci dessous que son utilisation est simple et qu'il peut etre TRES utile.

BCP :
------

BCP permet donc de copier les donnees d'un fichier de donnees dans sql serveur et inversement.

Pour avoir la syntaxe et les parametres obligatoire ou non, il suffit de taper à l'invite de commande dos

bcp pour voir s'afficher la liste des parametres optionnels.



La table :
----------

Pour les exemples, vous trouverez dans le .zip, un fichier nommé create.sql qui contient la structure de la table utilisateurs.
Cette table comprend plusieurs champs,
vous
pouvez soit créer cette table et y insérer des données soit modifier la syntaxe des commandes bcp utilises avec vos propres parametres.

Source / Exemple :


1) Exportation des donnees :
----------------------------

syntaxe :

bcp NomDB..NomTable out CheminDestiantion NomFichier Parametre 

Exemple :
---------

Cette commande créera un fichier sur le disque d:\ nomme fichierutilisateurs.txt contenant les donnees de la db asp table utilisateurs.

bcp asp..utilisateurs out d:\FichiersUtilisateurs.txt -c -T

Parametres :
------------

-c => specifie que nous travaillons en mode caractere
-T => vous evitera de taper votre mot de passe

Il est aussi possible d'utiliser des commandes Tsql pour n'extraire que les donnees qui nous interesse.
 
Exemple :
----------

sauvegarde dans un fichier .txt du nom et du prenom de la table utilisateurs.

Syntaxe : 

bcp "Requete from NomDB..NomTable etc.." queryout CheminDestination NomFichier Parametres

Exemple :
---------

bcp "select nom,prenom from asp..utilisateurs" queryout d:\queryUtilisateurs.txt -c -T

2) Importation des donnees :
----------------------------

Pour l'importation des donnees, il suffit d'avoir le fichier de donnees et de taper la commande adequate dont voici la syntaxe.

bcp NomDB..NomTable in CheminDuFichierDeDonnees NomFichier parametres

Exemple :
----------

Apres avoir importe les donnees de la table utilisateurs de l'exemple ci dessus, nous allons tout simplement les importer.

bcp asp..utilisateurs in d:\FichiersUtilisateurs.txt -c -T

Conclusion :


Voilà simple non et pratique..

Enjoy

Christophe

Un Bouillonnais

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
Intéressante solution.
Romelard Fabrice
cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
Salut _Fab ;-),

Merci pour ton comment ,j'ai hesite a poster cela dans la rubrique tutorial ...mais je pense qu'il est tres bien ici!

Bonne semaine..

Christophe
cs_echecetmat
Messages postés
1
Date d'inscription
vendredi 5 mars 2004
Statut
Membre
Dernière intervention
26 septembre 2005
-
Solution intéressante, mais il faut tout de meme savoir que si on veut faire une sauvegarde/restauration de tables qui posséde des champs autoincrémentés sur lesquelles il y a des relations (clefs étrangéres) il y a de gros risques d'erreurs. ;)
cs_pat84
Messages postés
29
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 mai 2009
-
Un post "un peu" en retard mais bon...
J'ai une importation de 80.000 enregistrements à réaliser dans vers base SQL Server, en provenance d'un fichier Excel/TXT, je ne sais pas encore.
Il est évident que cette solution présente quelques avantages !
Merci pour ce rappel de la commande BCP.
Patrice.
cs_TheMatrixHasYou
Messages postés
1
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
12 juillet 2007
-
Encore un peu trop tard ... C'est juste pour préciser que lors de l'importation de données vers SQL Server en utilisant la commande BCP, le seul défaut est qu'il faut que la table destination existe déjà, et que les types de données des colonnes soient un tant soit peu cohérents avec le contenu du fichier... Après, comme le dit echecetmat, si on importe vers une table utilisant des clés primaires et/ou clés externes, c'est sur que SQL Server va pas aimé et la commande BCP échouera simplement :) Cette commande est surtout utilisée pour importer un fichier volumineux vers une table temporaire, pour ensuite être traité en interne via une procédure stockée.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.