【问题标题】:SSIS one source mapping to 2 tables with primary keysSSIS 一个源映射到具有主键的 2 个表
【发布时间】:2016-08-15 01:14:05
【问题描述】:

我是 SSIS 新手,我必须将 Cozyroc 835 EDI 源处理到数据库中。 EDI 的一个输出是 2 个表的组合,表 A 包含表 B 的外键,因此我必须按顺序插入表中。我尝试使用多播,但它不允许我设置表插入的优先级。是否有任何转换可以让我决定优先级?

【问题讨论】:

  • 嗯,用箭头指示优先级?

标签: ssis edi


【解决方案1】:

另一种选择是始终将整个 EDI 导入到单个临时表中,然后执行存储过程,从临时表中填充两个目标表。

【讨论】:

    【解决方案2】:

    最好的答案是有两个数据流任务并双重处理您的文件。否则,我have an answer 但真的不要这样做。

    只需对文件进行双重处理。第一次填充表 A,然后填充表 B,以便满足 FK 关系。

    来自 cmets - 询问我们是否可以将数据从数据流任务中传递出去。

    不,数据流是独立的工作块。如果您担心解析,您可以考虑使用 MultiCast 组件 - 一个路由到表 A,一个路由到原始文件目标,然后仅使用填充表 B 所需的列填充原始文件。原始文件是 SSIS 独有的二进制文件,它可以有效地从中读取,因为它不需要任何区域设置感知解析。

    【讨论】:

    • 谢谢 我想到了,我担心开销。无论如何将源从一个数据任务传递到控制流任务以用于不同的数据任务还是一种全类型的东西?
    • 不,数据流是独立的工作块。如果您担心解析,您可以考虑使用 MultiCast 组件 - 一个路由到表 A,一个路由到原始文件目标,然后仅使用填充表 B 所需的列填充原始文件。原始文件是 SSIS 独有的二进制文件,它可以有效地从中读取,因为它不需要任何区域设置感知解析。
    • 感谢您提供的信息,我认为我无法批量解析 EDI,我需要能够返回身份字段并将其传递给服务行数据,即一对多的关系。我需要为每笔交易执行此操作。还是谢谢。
    • 也许我误解了你的问题。您能否编辑原件以帮助人们了解问题的细微差别?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 2018-12-21
    • 2013-12-09
    • 2018-05-05
    • 2010-11-20
    • 1970-01-01
    • 2014-04-16
    相关资源
    最近更新 更多