SSIS:如何按条件存储主要详细信息记录?

时间:2016-09-12 13:02:22

标签: ssis conditional one-to-many master-detail dataflow

我是SSIS的新手,我完全坚持也许是一个简单的问题。 我有两个表与一对多的关系。我在脚本组件中解析HTML数据,并为主数据和详细记录创建两个输出。 enter image description here

然后我检查覆盖现有数据的条件,如果满足,我将Master记录写入表中。不幸的是,我的数据流如上图所示(原理图)。在任何情况下都会添加详细记录。我希望只有满足条件时才会存储细节(图片上的绿色箭头),但无法想象如何操作。

2 个答案:

答案 0 :(得分:1)

当我们必须将XML数据加载到父子表时,我遇到了同样的问题。为此,我在包中添加了两个数据流任务。在第一个DFT中,我已经解析了XML并仅将数据加载到主表中。在第二个DFT中,我解析了子XML节点数据并将此输出传递给合并连接运算符(第一个输入)。现在,我们必须传递第二个输入来合并连接运算符,我已从主表中提取数据。

Master table insertion -

Child table insertion -

答案 1 :(得分:0)

家伙! 最终我设法解决了这个问题。我将整个过程分成两个数据流。在第一个解析html的情况下,如果需要,将主数据保存在表中,并将解析后的详细数据保存在包Object变量中。此外,第一个数据流具有行计数组件,该组件将其值保存在MasterRowCount变量中。在第二个数据流中,我将详细数据保存在表中。第一和第二数据流通过表达式约束优先级(@MasterRowCount> 0)连接。因此,仅在添加主数据时才执行第二个数据流。