|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 282 ![]() |
Bonjour tout le monde,
J'ai une cinquantaine de tables à exporter de SQL vers CSV. Comment faire pour automatiser l'export SVP. Merci. ash_rmy. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Bonsoir,
Quelle version de SQL Server ? ++ |
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() |
C'est du SQL SERVER 2005, mais pour plus de d'info sur l'édition. Donne nous le résultat de cette commande
Code :
|
||
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
utilisez bcp.exe ou SSIS.
Pour bcp vous pouvez le faire sure toutes vos tables via du SQL dynamique appelant la procédure xp_cmdshell. 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 * * * * * |
|
00
|
|
|
#5 | ||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 663 ![]() |
Bonjour,
Vous pouvez faire cela à l'aide de l'utilitaire BCP et d'une table contenant le nom des tables à exporter : Code :
Code :
INSERT bcp_tables_to_export_in_CSV_file (table_name) VALUES ('maTable') Utilisez ensuite la procédure stockée suivante : Code :
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||||
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() |
@ elsuket
Très bonne idée ![]() Sur une instance par défaut ça marche nickel, mais sur une instance nommée, il y a un petit souci sur la ligne Code :
' out "' + @_export_file + '" -c -T -t, –S' + @@SERVERNAME Code :
' out "' + @_export_file + '" -c -T -t, -S ' +'"'+ @@SERVERNAME +'"' Thanks
|
|
00
|
|
|
#7 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Pour SSIS aussi (ben oui faut bien donner toutes les solutions
) il suffit de faire un script qui liste l'ensemble de vos tables et integrer cela dans un foreach loop qui exportera les donnees de vos tables une a une.++ |
|
00
|
|
|
#8 | ||||||
|
Membre Expert
![]() ![]() |
Encore un correctif,
Description du bug ------------------ Lorsqu'il y a plus d'une ligne dans la table bcp_tables_to_export_in_CSV_file il y a une boucle infinie sur : Code :
Correctif ------------------ Code :
Procédure stockée après correction -------------------------------- Code :
|
||||||
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() ![]() |
3ème BUG : Description
--------------- L'ajout (APPEND) dans le fichier de sortie ne s'effectue pas. le dernier export de la dernière table écrase les données existant dans le fichier. Résultat : le fichier contient uniquement les données de la dernière table exportée Correction ---------------------- Code :
|
||
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 663 ![]() |
Merci pour lé débuggage Zinzineti
On peut aussi penser à exporter avec un fichier par table, ce qui fait que l'on peut se passer de l'append : Code :
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
00
|
|
|
#11 | ||||
|
Membre Expert
![]() ![]() |
Citation:
est : Citation:
J'ai relevé des coquilles dans le script que tu proposes pour cette opération : 1.) les paramètres suivants sont inutiles : --> @directory --> @export_file_temp --> @_export_file_temp (celui-ci n'était pas déclaré !) --> @append 2.) la ligne suivante est inutile : --> SET @_export_file_temp = @_directory_path + '\file_temp' + @file_extension 3.) J'ai remplacé la ligne suivante Code :
SELECT TOP (1) @bcp = 'BCP ' + DB_NAME() + '.dbo.' + table_name + ' out "' + table_name + '.csv" -c -T -t, -S ' + '"' + @@SERVERNAME + '"' Code :
SELECT TOP (1) @bcp = 'BCP ' + DB_NAME() + '.dbo.' + table_name + ' out "' + @_directory_path + table_name + '.csv" -c -T -t, -S ' + '"' + @@SERVERNAME + '"' Et finalement Code :
|
||||
|
00
|
|
|
#12 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 663 ![]() |
Décidément les vacances me sont bien nécessaires !
Encore merci et Joyeux Noël à toi @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#13 | |||
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 282 ![]() |
Citation:
merci beaucoup pour votre aide. Déjà en exécutant la requête ci-dessous, voici ce que j'ai : ProductVersion = 9.00.3073.00 ProductLevel = SP2 Edition = Enterprise Edition (64-bit) EngineEdition = 3 Quand j'exécute la procédure proc_export_tables_to_CSV_file, il m'affiche en erreur : Code :
Nom d'objet 'proc_export_tables_to_CSV_file' non valide. ash_rmy. |
|||
|
|
00
|
|
|
#14 | |||
|
Membre Expert
![]() ![]() |
Citation:
Code :
|
|||
|
00
|
|
|
#15 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 282 ![]() |
merci beaucoup pour votre aide. ça marche
ash_rmy. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com