2017-03-16 1 views
0

Je voudrais écrire un script qui me permet d'exporter des fichiers .csv de 15-20 tables temporaires que j'ai créées, en utilisant un script au lieu d'avoir à copier et coller dans un fichier séparé .csv, puis les enregistrer.Comment puis-je exporter une table mySQL #temp dans un fichier .csv dans un script?

:!!sqlcmd -S server -d database-E -Q "SET NOCOUNT ON 
SELECT * FROM TABLE" -o "C:\Users\name\Documents\folder\filename.csv" 
-W -w 1024 -s "," 

J'ai essayé ce qui fonctionne (pas le formatage correctement), mais il ne semble pas être le travail du tout pour une table temporaire; le fichier .csv contient ceci.

Msg 208 Level 16 State 1  Server SERVERNAME 
Invalid object name '#TEMPTABLE'.  

Je ne peux pas obtenir « des privilèges élevés » pour pouvoir utiliser l'exportation BCP, parce que je ne peux pas écrire une procédure stockée, créer une nouvelle base de données, ou d'accéder à la ligne de commande. Y at-il une solution de contournement pour cela?

Répondre

0

Les tables temporaires sont éphémères; ils ne persistent pas entre les sessions. Au lieu de créer des tables temporaires, de créer des tables réelles, que ce soit dans la base de données que vous travaillez avec, ou tempdb, puis exporter les données de tempdb

Un exemple:

sqlcmd -S server -d database -E -Q "If Exists (select * FROM tempdb.sys.tables WHERE name = 'Tmp_DataExport1') drop TABLE tempdb..Tmp_DataExport1;"

sqlcmd -S server -d database -E -Q "SELECT TOP 5 * INTO tempdb..Tmp_DataExport1 FROM T_SourceTable"

sqlcmd -S server -d database -E -Q "SELECT * FROM tempdb..Tmp_DataExport1" -o "c:\temp\filename.csv" -W -w 1024 -s ","

+1

Merci Alchimiste. Malheureusement, je n'ai pas l'autorisation de créer une table dans la base de données parce que je n'ai pas l'autorisation de le faire. Je vais essayer de déplacer la table vers tempdb, puis exporter – PharmaSQLnovice