变量表达式 vs 表达式任务

Variable expression vs Expression Task

在 SSIS 2012 中,我对表达式任务和变量 "Expression" 属性 之间的区别感到困惑。有什么不同?我想将变量 @Now 设置为等效于 T-SQL GETDATE() 函数。我假设唯一的区别是 Expression Task 只设置变量值一次,而变量的 Expression 属性 每次访问变量时都会执行。因此,每次使用变量时,当前日期和时间的表达式 属性 都会发生变化。

两种方法都可以完成很多任务,但假设您必须在特定任务之后或特定条件下(可能与其他任务相关)更改变量值 (当任务成功时,设置一个等于1的变量值),在这种情况下表达式属性不能达到你的目标所以你必须使用表达式task.

此外,在您的情况下,假设您要在 for-each 循环容器(在每个循环上)内将 @Now 变量设置为 GETDATE(),因此变量表达式 属性可能不行(打包执行时会设置一次),需要表达式任务


最近我发了一篇文章,内容比较详细,大家可以去看看: