ssis包中的优先约束编辑器

时间:2012-12-01 11:50:31

标签: ssis editor package constraints operator-precedence

我想要一个SSIS包,在这种情况下我有两个可用的变量:x = 1和y = 0和3个任务:一个是执行SQL任务(任务A)和两个脚本任务(任务B和C)。我想当我们在任务A中选择x = 1,运行任务B并且在任务A中选择y = 0时,运行任务C.在A和B之间的优先约束编辑器中,我选择具有成功值的表达式和约束,并在A和C之间的优先约束编辑器中选择具有失败值的表达式和约束,但我不知道在这些优先约束编辑器中必须写入什么表达式。请帮我 尊重

1 个答案:

答案 0 :(得分:4)

您需要在设计时设置两个包变量来保存x和y。

在“执行SQL”组件的“常规”选项卡中,将结果更改为SingleRow,并确保查询返回包含所需参数详细信息的1行。转到结果集选项卡,将两个包变量(x,y)设置为从查询返回的列。

从Execute SQL组件添加两个工作流,两者都是On Success。对于第一个工作流程(转到任务B),将表达式设置为@ [User :: x] == 1.对于第二个工作流程(到任务C),将表达式设置为@ [User :: y] == 0 。

如果您希望选项互斥,则必须在每个工作流程中包含两个子句(即@ [User :: x] == 1&& @ [User :: y]!= 0)。您必须计算所有排列并将其包含在表达式中,以避免两个工作流都被触发。