SSIS - SQL 命令 - 参数

SSIS - SQL Command - Parameters

我根据哈迪给出的解决方案编辑了问题。

我在 VS 2013 中使用 SSIS。 我有一个名为 MyVariableList 和 Query 的用户变量。

这是用户变量查询中的表达式:"SELECT cola, colB FROM myTable WHERE myID IN (" + @[User::MyVariableList] + ")"

我有一个设置@[User::MyVariableList] 值的脚本任务。

Dts.Variables["User::MyVariableList"].Value = sList;

在那之后,我有一个带有 OLE DB 源(从 1 个数据库)到另一个 OLE DB 目标(另一台服务器上的另一个数据库)的数据流任务。 在 OLE DB 源代码编辑器中,我设置 数据访问模式:SQL 来自变量的命令 变量名称:用户::查询

在 OLE DB 源连接中,我已将 DelayValidation 设置为 True

在我 运行 打包之前,我收到了这个错误 我该如何解决这个问题?谢谢

首先,您正在使用 project parameter not a project variable

您无法使用参数化的 sql 命令实现此目的,您必须在变量中构建整个查询,并将其用作来源 (SQL 来自变量的命令)

参数用于指定单个值,而不是连接查询字符串

创建一个SSIS变量(User::Query),将变量Evaluate As Expression属性改为True,在变量Expression属性中写入表达式。喜欢下面

"SELECT cola, colB FROM myTable WHERE myID IN (" + @[$Project::MyProjectVariable]  +   ")"

注意:要在表达式中使用项目参数,请使用以下语法:@[$Project::MyProjectVariable]