SSIS:如何在WHERE子句中使用project.params

时间:2017-11-01 19:40:09

标签: ssis

我有几个包,它们都有以下WHERE子句:

WHERE CreatedColumn >= DATEADD(DAY, -14, GETDATE())

我希望能够同时更改所有包的值。所以我在project.params中添加了CreateDateTime作为字符串,其值为DATEADD(DAY,-14,GETDATE())

然后在我的包变量中,我使用实际查询添加了SourceQuery:

"SELECT * FROM MyTable WHERE CreatedColumn >= " + @[$Project::CreatedDateTime] + ";"

在ExpressionBuilder中我收到错误:

  

表达式可能包含无效标记,不完整标记或无效元素。它可能没有格式良好,或者可能缺少必要元素的一部分,例如括号。

如果我通过删除$符号来改变我的实际查询:

"SELECT * FROM MyTable WHERE CreatedColumn >= " + @[Project::CreatedDateTime] + ";"

我的错误变为:

  

变量" Project :: CreatedDateTime"在Variables集合中找不到。该变量可能不存在于正确的范围内。

1 个答案:

答案 0 :(得分:0)

Sql命令:SELECT * FROM MyTable WHERE CreatedColumn> =?

并右键单击参数选项卡并分配变量Project :: CreatedDateTime