如何使用BCP命令

时间:2017-12-09 10:28:08

标签: sql sql-server sql-server-2008

目前我所拥有的是:

bcp "select * from TEST.dbo.HPA_1 WITH (NOLOCK)" queryout D:\Gift_Voucher\HPA\test1.txt -T -c -t

当我第一次运行上面的代码时,它工作正常并且它创建了文本文件test1.txt,但是当在表中添加新数据时,我想创建类似于test2.txt和test3.txt的新文本文件。所以不改变bcp中的代码。我们能在这做什么吗?

1 个答案:

答案 0 :(得分:1)

更改BAT文件以使用命令行参数替换输出文件路径:

bcp "select * from TEST.dbo.HPA_1 WITH (NOLOCK)" queryout "%1" -T -c -t

在SSIS包中,为所需的输出文件路径创建一个字符串变量。将Execute Process Task Executable属性设置为" cmd.exe"。在“表达式”页面上,将“Arguments”属性设置为使用BAT文件路径和输出文件参数构建命令的表达式。下面的示例还将值括在引号中以处理路径中的空格:

enter image description here

在执行任务之前,将变量值设置为包中的输出文件路径变量。这可以在包代码中完成,也可以通过SSIS配置设置值。

请注意,您可以在数据流任务中完成相同的功能,而不是外壳到BCP。这利用了SSIS的本地导出功能。