I have a fairly straightforward SSIS package with a number of Data Flow
tasks each with data-flows for multiple tables like shown below:
我希望能够根据一些用户定义的变量值来执行每个数据流,我使用Script Task
在控制流中。例如,如果变量(例如 BESTELLDRUCK)值是true
,然后我想执行该表的数据流(源-转换-目标任务),否则我想跳过该表并继续执行同一数据流任务中的另一个表(例如 AKT_FEHLER)。
我怎样才能做到这一点?提前致谢。
You cannot禁用或启用内的转换Data Flow Task
。但是,您可以启用或禁用数据流任务Control Flow
tab.
以下是在“控制流”选项卡上执行此操作的一种可能方法:
如果可能,将源 --> 目标转换移至单独的数据流任务。如下所示。
假设您已为每个流创建了变量,以根据某些条件启用或禁用数据流任务。对于这个例子,我对一些值进行了硬编码。
根据变量动态启用或禁用数据流任务。单击数据流任务并按F4查看Properties
。在属性上,单击Ellipsis按钮旁边的Expressions
财产。您将看到属性表达式编辑器。
选择Property
禁用并使用Ellipsis按钮输入表达式!@[User::Enable_BESTELLDRUCK]
请注意感叹号,因为该变量被声明为Enable但只有Disable
财产可供您需要做相反的事情。
使用适当的变量对其他数据流任务重复该过程。运行该包,您会注意到第二个数据流任务没有执行,因为变量Enable_AKT_FEHLER
被设置为值False
.
希望有帮助。
参考:
要在 ForEach 循环容器中加载具有相同架构的多个表,请查看下面的答案。它将数据从 MS Access 传输到 SQL Server。希望这能给您一个想法。
如何以编程方式获取 SSIS 包中的 MS Access 表列表? https://stackoverflow.com/questions/6298806/how-do-i-programmatically-get-the-list-of-ms-access-tables-within-an-ssis-packag/6301687#6301687
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)