Sql 如何使用BCP命令动态创建新的文本文件

Sql 如何使用BCP命令动态创建新的文本文件,sql,sql-server,sql-server-2008,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中的代码。我们可以在这里做些什么吗?更改BAT文件,用命令行参数替换输出文件路径: bcp "select

目前我拥有的是:

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中的代码。我们可以在这里做些什么吗?

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

bcp "select * from TEST.dbo.HPA_1 WITH (NOLOCK)" queryout "%1" -T -c -t
在SSIS包中,为所需的输出文件路径创建字符串变量。将Execute Process Task Executable属性设置为“cmd.exe”。在“表达式”页面上,将Arguments属性设置为使用BAT文件路径和输出文件参数生成命令的表达式。下面的示例还将值括在引号中,以处理路径中的空白:

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


请注意,您可以在数据流任务中完成相同的功能,而不是向BCP脱壳。这充分利用了SSI的本机导出功能。

您如何执行
BCP
?从命令提示符或T-SQL
xp\u cmdshell
?实际上我是从SSIS执行它的。我创建了一个.bat文件,并从SSIS包中调用它