1

我在文件夹中有一个脚本文件。我想使用 TSQL 运行此脚本而不在 SSMS 中打开它,因为我将使用 SSIS 运行此脚本以生成 CSV。

我已经使用 OSQL 通过使用 Execute Process Task 来实现这一点,但它并没有给我我正在寻找的确切结果。它在 csv 中生成空间。当我使用 OSQL 代码执行时,我通过右键单击导出为 CSV 选项的 17 mb 文件变成了 1gb。我使用的 OSQL 是:

-E -S CCCMSDSQL20,1819 -d SHARE_SCRUB -q "SET NOCOUNT ON" -i "C:\Scripts\.SQL" -o "C:\Scripts\.csv" -n -h-1 -s"," -w 700

我更喜欢可以实现相同功能的 TSQL 脚本,这样我就可以在执行 SQL 任务中使用它并获得结果。

编辑:我正在努力从一个文件夹中的多个 .sql 文件生成多个 csv。我正在使用每个循环容器并执行流程任务。我想更改执行流程任务以执行 sql 任务并使用此脚本生成多个文件。

如果可以编写一个 TSQL 代码,它可以在一个脚本中循环和生成 CSV 文件,我可以在不使用包的情况下使用它。

感谢您的时间和帮助。

4

1 回答 1

1

你的 osql 参数是我所期望的,我只是做了一个小演示来做类似的事情,它可以正常工作。

我会检查您的实际 sql 脚本及其在 SSMS 中的结果,以确保它不会返回超出您想要的内容。

此外,它可能不是您想要的,因为您还打算将它与 Execute SQL 任务一起使用,但我会指出 bcp 是专门为将数据复制进和复制出 SQL 而设计的,您可以使用纯 T-SQL使用 opendatasource 制作 CSV 文件,而不使用 -o 将 OSQL 的结果转储到文件中。

于 2012-10-25T16:54:41.450 回答