【发布时间】:2018-07-31 09:52:50
【问题描述】:
我有几个查询需要在Microsoft SQL Server Management Studio 中每周运行一次,每一个只是一个比较简单的选择查询,结果需要保存到csv 文件中。现在有人花一个小时轮流运行每个脚本并保存结果。
我认为这可能有点自动化,但我很挣扎。
通过阅读此处的先前问题,我已经了解了使用 SQLCMD 模式,并通过输入 :output c:\filename.csv 我将输出保存到一个文件中,但是我无法生成单独的文件每个查询。
为简单起见,假设我的查询如下所示:
OUT: C:\File1.csv
SELECT * FROM table1;
OUT: C:\File2.csv
SELECT * FROM table2;
OUT: C:\File3.csv
SELECT * FROM table3;
我最终得到的不是每个查询的输出都包含三个文件,而是 File1 和 File2 填充了几个不可读的字符,并且所有三个查询都在 File3 中。我知道在 Oracle 中有一个 spool off 命令,对于 OUT:在 SSMS 中是否有类似的东西?
【问题讨论】:
-
我仍然想知道这是否可以在脚本本身内完成,但我采取了以下措施作为权宜之计:
for %%G in (*.sql) do sqlcmd /S [server] -U [username] -P "[password] -o "%%G.csv" -s"," -w 700 -i "%%G"pausefor %%A in (*.sql.csv) do for %%B in ("%%~nA") do ren "%%A" "%%~nB.csv"
标签: sql ssms export-to-csv sqlcmd