我有一个包含SQLCMD元素的脚本的.sql文件。
我需要从SSIS包中运行它。
我无法从"执行 SQL 任务"执行它。
根据这个http://www.sqlservercentral.com/Forums/Topic818940-147-1.aspx我应该使用"执行过程任务"用:
可执行文件: C:\ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ SQLCMD.EXE
参数: -S server -U user -P pass -i C:\ path \ to \ file.sql
这很好。
但是,我需要Arguments包含一个变量。我尝试过什么,它失败了。
参数: -S server -U user -P pass -i @ [User :: FileNameView]
错误:
[Execute Process Task] Error: In Executing "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" "-S server -U user -P pass -i @[User::FileNameView]" at "", The process exit code was "1" while the expected was "0".
我的问题是:如何在Arguments字符串中包含变量?我应该采取不同的方法吗?
额外信息:
SQL Server 2008R2
我需要将其作为变量的原因是因为我将执行"执行过程任务"在"对于每个循环"能够执行文件夹中的所有.sql文件。
答案 0 :(得分:1)
我相信你需要创建一个名为Arguments的表达式,其值为:
"-S server -U user -P pass -i " + @[User::FileNameView]
如果@[User::FileNameView]
不是字符串,您可能需要进行一些类型转换。