Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Outils
Outils Forum d'entraide sur les outils gravitant autour de MS-SQL Server, tels que bcp, TDS, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2008, 11h36   #1
Membre du Club
 
Inscription : janvier 2008
Messages : 120
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2008
Messages : 120
Points : 46
Points : 46
Par défaut Comment remplir une table SQL depuis un fichier *.txt/*.mdf

Bonjour à tous,

J'ai besoin de votre expérience pour savoir comment remplir des tables de ma base de données depuis un fichier *.txt ou *. mdf.

Je suis sous SQL Server 2005, les fichiers proviennent de l'INSEE concernant les pays du monde entier ainsi que les villes, departements, et regions de France.

Merci pour votre aide.
verbal34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 16h02   #2
Membre du Club
 
Inscription : janvier 2008
Messages : 120
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2008
Messages : 120
Points : 46
Points : 46
Je reviens sur le meme problème,
j'ai trouvé sur le msdn un lien ( http://msdn.microsoft.com/fr-fr/library/ms162802.aspx )
sur un utilitaire BCP, c'est déjà une avance mais je ne trouve pas d'exemple il y a trop de paramètres! alors si quelqu'un a un exemple il est le bienvenu.

Merci.
verbal34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2008, 14h30   #3
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
Oui, BCP est la solution.

Dans le lien que vous mettez il y a déjà bcp d'exemples ...

En général pour un fichier texte, il n'y a pas de soucis particulier :

Code :
bcp <base>..<Table> IN <fichier.txt> -c -U<user> -P <pass> -S <serveur>
Pour un fichier MDF, vous devriez utiliser une option dans Access plutôt ...
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2008, 20h38   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 792
Points : 17 792
Utilisez plutôt-
Code :
1
2
3
BULK INSERT <MaTable>
FROM DISK = 'MonChemin\MonFichier'
WITH ...
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 09h19   #5
Membre du Club
 
Inscription : janvier 2008
Messages : 120
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2008
Messages : 120
Points : 46
Points : 46
Bonjour à tous
Merci pour vos réponses, je vais voir ce que ça donne sur ma base.
Bonne journée.
verbal34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 15h44   #6
Membre du Club
 
Inscription : janvier 2008
Messages : 120
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2008
Messages : 120
Points : 46
Points : 46
Citation:
Envoyé par kagemaru Voir le message
Oui, BCP est la solution.

Dans le lien que vous mettez il y a déjà bcp d'exemples ...

En général pour un fichier texte, il n'y a pas de soucis particulier :

Code :
bcp <base>..<Table> IN <fichier.txt> -c -U<user> -P <pass> -S <serveur>
Pour un fichier MDF, vous devriez utiliser une option dans Access plutôt ...
J'ai essayer cette ligne de commande :

C:\>bcp dbo.NomBase..Pays "SELECT *" in D:\ListePays-CSV.csv -c -Uuser -Ppswd -SNomServeur

pour copier les données qui se trouvent dans un fichier csv (généré depuis Excel) et contenant un ID Pays + Libelle

ça ne fonctionne pas et j'ai ce message :

Copy direction must be either 'in', 'out' or 'format'.

sachant que je veux copier le contenu du fichier vers ma table Pays... et sur msdn in correspond à ma requete : http://msdn.microsoft.com/fr-fr/library/ms162802.aspx

Je suis perdu!

Merci.
verbal34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 10h19   #7
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
Vous n'avez pas à mettre de SELECT *. De plus, soyez plus attentif à la syntaxe (base.user.table)

Code :
C:\>bcp NomBase.dbo.Pays IN D:\ListePays-CSV.csv -c -Uuser -Ppswd -SNomServeur
l'ordre SELECT servirait si vous vouliez extraire le résultat d'une requête dans un fichier.
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 10h35   #8
Membre du Club
 
Inscription : janvier 2008
Messages : 120
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2008
Messages : 120
Points : 46
Points : 46
Citation:
Envoyé par kagemaru Voir le message
Vous n'avez pas à mettre de SELECT *. De plus, soyez plus attentif à la syntaxe (base.user.table)

Code :
C:\>bcp NomBase.dbo.Pays IN D:\ListePays-CSV.csv -c -Uuser -Ppswd -SNomServeur
l'ordre SELECT servirait si vous vouliez extraire le résultat d'une requête dans un fichier.
Oups... Merci pour la remarque... je vais voir ce que ça donne...
verbal34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 08h13   #9
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 162
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 162
Points : 1 618
Points : 1 618
Pour votre fichier .mdf, vous pouvez penser à simplement attacher ce fichier comme nouvelle base de donnée.
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 09h14   #10
Membre du Club
 
Inscription : janvier 2008
Messages : 120
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : janvier 2008
Messages : 120
Points : 46
Points : 46
Citation:
Envoyé par Ptit_Dje Voir le message
Pour votre fichier .mdf, vous pouvez penser à simplement attacher ce fichier comme nouvelle base de donnée.
Au fait mon fichier mdf contient plus de colonnes que ce qu'il me faut et je ne sais pas si je peux supprimer des colonnes d'une table qui contient déjà des données?!
verbal34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h17.


 
 
 
 
Partenaires

Hébergement Web