如何使用用户定义的 parameter/variable 触发 SSIS 包的数据流元素?

How do I trigger a data flow element of an SSIS package using a user-defined parameter/variable?

使用 SSDT 16.0.61908、SSIS 15.0.2000 和 VS Community 16.3.4

我有一个包含两个数据流的包。我想使用用户定义的或通过前面的过程传入的包范围变量来确定要执行的数据流。

比如变量表示"A"则执行数据流1,如果变量表示"B"则执行数据流2。

我确定一定有一种简单的方法可以做到这一点,但我在任何文档中都没有清楚地看到它。

在您的示例中使用 "A" 或 "B" 将参数传递给包。

使用一个不像表达式那样真正做任何事情的任务。

link 数据流的表达式和条件到 A 或 B 的路径。

您正在寻找优先约束条件。将序列容器添加到您的包中。称之为决策点或类似的东西。这样做的目的是为所有需要确定是否轮到 运行

的可执行文件提供一个共享的父级

然后将绿色箭头从中拖出到您的各种数据流中。

双击箭头并将约束从约束更改为约束和表达式。

SSIS sequence container: Setting conditional parameters for when file is not present

在您的表达式中,您可以对数据流 1 执行 @[User::MyVar] == "A",对数据流 2 执行 @[User::MyVar] == "B",等等

如果您需要对它们有相同的后继,您将修改各种数据流的输出路径以使用 Or 先例约束。