SSIS复杂xml多输出优先级

时间:2017-05-21 03:27:59

标签: ssis sql-server-2016

我的xml文件包含以下格式的数据:

<parent fieldone="good" valuetwo="100">
  <employees>
    <employeename>
  </employee>
  <customers>
    <customername>
  </customers>
 </parent>

尝试使用SSIS将其作为复杂的xml导入,但我需要首先导入父元素属性中的数据,以便遵守foreignkey约束。

在xml导入源例程之前,我使用SSIS SQL数据任务来获取父级xml对应表的最高/最后一个id。然后我将该值+1应用于一个变量(称为ParentId),该变量用于其foreignkey字段中的所有子表。

然后将所有xml源输出映射到表,包括xml父级和相应的表。我依靠这个插入来创建我假设的id(即我赋给变量ParentId的id)

但导入失败是因为父输出没有先被处理,所以它永远不会插入那条记录,而我假设的parentid永远不会被生成。

是否有办法强制执行处理xml源输出的优先级或顺序?

1 个答案:

答案 0 :(得分:0)

如果这有助于其他任何人。

我最终做的是使用xml任务(xslt)将文件拆分为两个,一个用于父文件,另一个用于子记录(父文件总是只有一个记录)。

然后我按顺序创建了两个xml源,第一个导入新创建的父xml,并使用相同的查询&amp;第一篇文章中提到的验证方法获得了正确的身份值。

然后在第二个xml源任务中的所有子记录中使用它。