Sql server 从SSIS运行SQLCMD脚本使用变量执行流程任务

Sql server 从SSIS运行SQLCMD脚本使用变量执行流程任务,sql-server,ssis,sqlcmd,Sql Server,Ssis,Sqlcmd,我有一个.sql文件,其中包含包含SQLCMD元素的脚本 我需要从SSIS包运行它 我无法从“执行SQL任务”执行它 根据这一点,我应该使用“执行过程任务”,包括: 可执行文件:C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE 参数:-S server-U user-P pass-ic:\path\to\file.sql 这很好用 但是,我需要参数包含一个变量。无论我尝试什么,都是失败的 参数:-S server-U

我有一个.sql文件,其中包含包含SQLCMD元素的脚本

我需要从SSIS包运行它

我无法从“执行SQL任务”执行它

根据这一点,我应该使用“执行过程任务”,包括:

可执行文件:C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE
参数:-S server-U user-P pass-ic:\path\to\file.sql

这很好用

但是,我需要参数包含一个变量。无论我尝试什么,都是失败的

参数:-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".
我的问题是:如何在参数字符串中包含变量?我应该采取不同的方法吗

额外信息:
SQL Server 2008R2

之所以需要将其作为变量,是因为我将“执行流程任务”放在“For each循环”中,以便能够执行文件夹中的所有.sql文件。

我认为您需要创建一个名为Arguments的表达式,其值为:

"-S server -U user -P pass -i " + @[User::FileNameView]

如果
@[User::FileNameView]
不是字符串,您可能需要执行一些类型转换。

这是我尝试执行时遇到的错误:
[Execute Process Task]error:在执行“C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE”“-S Server-U User-p pass-I”+@[User::FileNameView]”时,进程退出代码为“1”而预期值为“0”。
Arh-您是对的!我以前没有使用过“执行流程任务”,所以我误解了您对表达式的理解。它现在工作正常。谢谢。啊,是的,我在考虑是否应该更详细地解释该做什么或不该做什么。很高兴你能找到答案!