2017-03-16 93 views
0

我想編寫一個腳本,可以讓我將文件從我創造了15-20的臨時表中導出的.csv,使用腳本而不是在一個單獨的文件.csv複製和粘貼,然後保存下來的。如何在腳本中將mySQL #temp表導出爲.csv文件?

:!!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 "," 

我試過這個,它工作(沒有正確格式),但它似乎並沒有工作的臨時表; .csv文件包含此內容。

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

我不能獲得「權限提升」,以能夠使用BCP出口,因爲我不能寫一個存儲過程,創建一個新的數據庫,或訪問命令行。有沒有解決方法?

回答

0

溫度表是短暫的;他們不會在會話中持續。而不是創建臨時表,創建實際的表,無論是在你正在使用的,或者在tempdb,然後從tempdb

導出數據的示例數據庫:

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

謝謝煉金術士。不幸的是,我沒有權限在數據庫中創建實際的表格,因爲我沒有權限這樣做。我會嘗試將表移動到tempdb,然後導出 – PharmaSQLnovice