Sql 按顺序运行多个脚本,并将每个脚本输出到csv文件

Sql 按顺序运行多个脚本,并将每个脚本输出到csv文件,sql,ssms,export-to-csv,sqlcmd,Sql,Ssms,Export To Csv,Sqlcmd,我有几个查询需要在MicrosoftSQLServerManagementStudio中每周运行,每个查询都只是一个相对简单的select查询,结果需要保存到csv文件中。现在有人花一个小时依次运行每个脚本并保存结果 我想这可能是自动化的,但我很挣扎 通过阅读前面的问题,我已经了解到如何使用SQLCMD模式,通过输入:output c:\filename.csv,我将输出保存到一个文件中,但是我很难为每个查询生成单独的文件 为简单起见,假设我的查询如下所示: OUT: C:\File1.csv

我有几个查询需要在MicrosoftSQLServerManagementStudio中每周运行,每个查询都只是一个相对简单的select查询,结果需要保存到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中?

我运行了一个稍微修改过的查询,并能够获得三个具有三种不同查询结果的文件。我运行了以下快速测试:

:OUT C:\File1.csv
SELECT 'Hello'

GO

:OUT C:\File2.csv
SELECT 'My'

GO

:OUT C:\File3.csv
SELECT 'Friend'

这给了我三个单独的文件,每个查询的结果都在一个单独的文件中。我所做的只是去掉分号并添加关键字GO,这将终止一个命令并继续下一个命令。我希望这会有所帮助。

我仍然想知道这是否可以在脚本本身内完成,但我求助于以下作为权宜之计:
对于(*.sql)中的%%G执行sqlcmd/S[server]-U[username]-p“[password]-o”%%G.csv“-S”,“-w700-I”%%G”
暂停
对于(*.sql.csv)中的%%a执行,对于%%B执行(%%nA)执行%%A“%%”~nB.csv“
Ahh,这正是我所需要的,我试着在谷歌上搜索各种不同的术语,但不知何故,从来没有遇到过任何关于GO本质上结束并开始新脚本的内容。所以我认为SQLCMD可能稍微更强大和有用,但这对于临时使用肯定仍然有用,干杯!很高兴来到这里!快乐编码。