【发布时间】:2016-08-15 01:14:05
【问题描述】:
我是 SSIS 新手,我必须将 Cozyroc 835 EDI 源处理到数据库中。 EDI 的一个输出是 2 个表的组合,表 A 包含表 B 的外键,因此我必须按顺序插入表中。我尝试使用多播,但它不允许我设置表插入的优先级。是否有任何转换可以让我决定优先级?
【问题讨论】:
-
嗯,用箭头指示优先级?
我是 SSIS 新手,我必须将 Cozyroc 835 EDI 源处理到数据库中。 EDI 的一个输出是 2 个表的组合,表 A 包含表 B 的外键,因此我必须按顺序插入表中。我尝试使用多播,但它不允许我设置表插入的优先级。是否有任何转换可以让我决定优先级?
【问题讨论】:
另一种选择是始终将整个 EDI 导入到单个临时表中,然后执行存储过程,从临时表中填充两个目标表。
【讨论】:
最好的答案是有两个数据流任务并双重处理您的文件。否则,我have an answer 但真的不要这样做。
只需对文件进行双重处理。第一次填充表 A,然后填充表 B,以便满足 FK 关系。
来自 cmets - 询问我们是否可以将数据从数据流任务中传递出去。
不,数据流是独立的工作块。如果您担心解析,您可以考虑使用 MultiCast 组件 - 一个路由到表 A,一个路由到原始文件目标,然后仅使用填充表 B 所需的列填充原始文件。原始文件是 SSIS 独有的二进制文件,它可以有效地从中读取,因为它不需要任何区域设置感知解析。
【讨论】: