运行 几个脚本依次输出到一个csv文件
Run several scripts in sequence and output each one to a csv file
我在 Microsoft SQL Server Management Studio 中有几个每周需要 运行 的查询,每个查询都只是一个相对简单的 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,这将终止命令并继续执行下一个命令。希望对您有所帮助。
我在 Microsoft SQL Server Management Studio 中有几个每周需要 运行 的查询,每个查询都只是一个相对简单的 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,这将终止命令并继续执行下一个命令。希望对您有所帮助。