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

Soyez le premier à donner votre avis sur cette source.

Vue 38 637 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

Scaythe
Messages postés
11
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
4 juin 2010
-
Pour t'aider :
C:\Users\Administrateur>bcp
utilisation : bcp {dbtable | query} {in | out | queryout | format} fichier_données
[-m erreurs maximum] [-f format fichier] [-e fichier erreur]
[-F première ligne] [-L dernière ligne] [-b taille lot]
[-n type natif] [-c type caractère] [-w type caractère large]
[-N conserver caractère nontexte natif] [-V version de format de fichier] [-q identificateur entre guillemets]
[-C spécificateur page de codes] [-t indicateur fin champ] [-r indicateur fin ligne]
[-i fichier entrée] [-o fichier sortie] [-a taille paquet]
[-S nom serveur] [-U nom utilisateur] [-P mot passe]
[-T connexion approuvée] [-v version] [-R régional activé]
[-k conserver valeurs nulles] [-E conserver valeurs identité]
[-h charger les indicateurs] [-x créer le fichier au format xml]


Notons au passage :
1- quasiement les mêmes arguements que les commandes osql , isql , sqlcmd
2- Indiquer une table c'est bien faut-il encore savoir où elle se trouve : il faut donc lui indiquer le serveur et instance au besoin ...
WanaDien
Messages postés
7
Date d'inscription
lundi 13 janvier 2003
Statut
Membre
Dernière intervention
28 mai 2007
-
Bonjour,

Cela ne fonctionne pas de mon côté, j'ai une erreur ..

Test_Bulk : Nom de ma base de données
TBulk : Table de cette base

J'ai fait : Démarrer/Executer/cmd

Dans la fenêtre j'ai mis :

bcp Test_Bulk..TBulk out c:\test.txt -c -T

J'ai cette erreur

C:\>bcp Test_Bulk..TBulk out c:\test.txt -c -TSQLState 08001, NativeError 2
Error = [Microsoft][SQL Server Native Client 10.0]Named Pipes Provider: Could no
t open a connection to SQL Server [2].SQLState 08001, NativeError 2
Error = [Microsoft][SQL Server Native Client 10.0]A network-related or instance-
specific error has occurred while establishing a connection to SQL Server. Serve
r is not found or not accessible. Check if instance name is correct and if SQL S
erver is configured to allow remote connections. For more information see SQL Se
rver Books Online.SQLState S1T00, NativeError 0
Error = [Microsoft][SQL Server Native Client 10.0]Login timeout expired

Peux-tu m'aider ?
dymsbess
Messages postés
56
Date d'inscription
mercredi 29 septembre 2004
Statut
Membre
Dernière intervention
4 janvier 2010
1 -
redh0815
Messages postés
1
Date d'inscription
dimanche 30 décembre 2007
Statut
Membre
Dernière intervention
20 juin 2008
-
merci bcp sava bien m'aider
cs_jimmy69
Messages postés
787
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
27 novembre 2008
-
salut salut,

Merci pour l'info c'est sympa !

Bonne fin de semaine
Christophe

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.