如何在脚本中将mySQL #temp表导出为.csv文件?
问题描述:
我想编写一个脚本,可以让我将文件从我创造了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出口,因为我不能写一个存储过程,创建一个新的数据库,或访问命令行。有没有解决方法?
答
温度表是短暂的;他们不会在会话中持续。而不是创建临时表,创建实际的表,无论是在你正在使用的,或者在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 ","
谢谢炼金术士。不幸的是,我没有权限在数据库中创建实际的表格,因为我没有权限这样做。我会尝试将表移动到tempdb,然后导出 – PharmaSQLnovice