运行 来自 SSIS Execute Process Task with variables 的 SQLCMD 脚本

Running a SQLCMD script from SSIS Execute Process Task with variables

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

我需要从 SSIS 包中获取它 运行。

我无法从 "Execute SQL Task" 执行它。

根据这个 http://www.sqlservercentral.com/Forums/Topic818940-147-1.aspx 我应该使用 "Execute Process Task" 和:

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

这工作正常。

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

参数: -S server -U user -P pass -i @[User::FileNameView]

错误:

[Execute Process Task] Error: In Executing "C:\Program Files\Microsoft SQL Server0\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 服务器 2008R2
我需要它作为变量的原因是因为我将 "Execute Process Task" 放在 "For each loop" 中以便能够执行文件夹中的所有 .sql 文件。

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

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

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