变量表达式 vs 表达式任务
Variable expression vs Expression Task
在 SSIS 2012 中,我对表达式任务和变量 "Expression" 属性 之间的区别感到困惑。有什么不同?我想将变量 @Now
设置为等效于 T-SQL GETDATE()
函数。我假设唯一的区别是 Expression Task 只设置变量值一次,而变量的 Expression 属性 每次访问变量时都会执行。因此,每次使用变量时,当前日期和时间的表达式 属性 都会发生变化。
两种方法都可以完成很多任务,但假设您必须在特定任务之后或特定条件下(可能与其他任务相关)更改变量值 (当任务成功时,设置一个等于1
的变量值),在这种情况下表达式属性不能达到你的目标所以你必须使用表达式task.
此外,在您的情况下,假设您要在 for-each 循环容器(在每个循环上)内将 @Now
变量设置为 GETDATE()
,因此变量表达式 属性可能不行(打包执行时会设置一次),需要表达式任务
最近我发了一篇文章,内容比较详细,大家可以去看看:
在 SSIS 2012 中,我对表达式任务和变量 "Expression" 属性 之间的区别感到困惑。有什么不同?我想将变量 @Now
设置为等效于 T-SQL GETDATE()
函数。我假设唯一的区别是 Expression Task 只设置变量值一次,而变量的 Expression 属性 每次访问变量时都会执行。因此,每次使用变量时,当前日期和时间的表达式 属性 都会发生变化。
两种方法都可以完成很多任务,但假设您必须在特定任务之后或特定条件下(可能与其他任务相关)更改变量值 (当任务成功时,设置一个等于1
的变量值),在这种情况下表达式属性不能达到你的目标所以你必须使用表达式task.
此外,在您的情况下,假设您要在 for-each 循环容器(在每个循环上)内将 @Now
变量设置为 GETDATE()
,因此变量表达式 属性可能不行(打包执行时会设置一次),需要表达式任务
最近我发了一篇文章,内容比较详细,大家可以去看看: