SSIS 数据流 - 具有所需外键值的顺序插入
Posted
技术标签:
【中文标题】SSIS 数据流 - 具有所需外键值的顺序插入【英文标题】:SSIS Data Flow - sequential insert with required foreign key values 【发布时间】:2012-11-09 14:29:09 【问题描述】:是否可以插入到初始表,然后使用插入的 ID 插入到在一个数据流中的列之间具有外键约束的主表?
我是集成服务的新手,不了解功能
场景:
表 A - ID - DESC
表 B - ID - 援助 - DESC
这就是 A_ID 是外键的地方(如果它不明显的话)
我可以使用这种顺序事件流创建单个数据流,还是在插入表 A 后需要创建另一个数据流以插入表 B。
谢谢
【问题讨论】:
【参考方案1】:数据流中没有优先约束或容器,因此如果您将两个操作放在一个流中,它们会并行执行,这意味着您无法确保它们会按必要的顺序完成。所以只需使用两个数据流,然后您就可以控制控制流中的顺序。
【讨论】:
谢谢。我所做的是取出 FK 约束并在插入两个表后放置它们。 在控制流中多次复制和粘贴数据流使事情变得容易。重命名它们。将它们链接在一起。然后回到里面,删除了不相关的部分。【参考方案2】:您可以在一个数据流任务中拥有不同的“通道”和不同的导入。这些可以通过使用合并任务进行合并,您可以使用您的 ID 加入。通常,每个“通道”包含一个数据流,代表一个表。
图片来源:http://sqlserverpedia.com/w/images/5/56/CWebb-Dataflow.png
如果您看一下图像,“连接”、“命令”和“会话”任务将各有一个数据流。如您所见,合并任务将处理两个流,因此您可以通过这种方式预处理数据。 (就像有一个你想要的初始表。但这将是并行的!)
如果我说对了,您只是想查找一下。看看here。
【讨论】:
感谢您的回复。我得到你的解释,但这不是我需要的。我有一个数据源,但我需要插入多个表。其中上表中的数据将用于下表。正如我所读到的,我需要一个脚本组件在我插入后从数据库中查询,但我卡在那个点上,因为我不知道为什么“Dts”最终没有作为全局变量出现..【参考方案3】:如果我理解你的话:
-
需要在
TABLE A
中插入数据
当您在TABLE B
中插入数据时,使用LOOKUP 元素从TABLE A
获取密钥。
【讨论】:
以上是关于SSIS 数据流 - 具有所需外键值的顺序插入的主要内容,如果未能解决你的问题,请参考以下文章