首页 > 解决方案 > 带有连接的 SSIS 平面文件

问题描述

我有一个包含以下列的平面文件

我需要将其插入名为 Devices 的 SQL Server 表中。设备表具有以下结构

DeviceType、DeviceLocation 和 DeviceZone 表已预先填充。现在我需要编写读取平面文件的 ETL,并为每一行从相应的表中获取 DeviceTypeId、DeviceLocationId 和 DeviceZoneId 并插入到 Devices 表中。我确信这不是什么新鲜事,但我在这样的 SSIS 包上工作了一段时间,我们将不胜感激。

标签: sql-serverssisforeign-keysetllookup

解决方案


将平面内容加载到临时表中并编写存储过程来处理 T-SQL 中的插入和更新。

在目标表之间建立 FK 关系可能会给单个数据流和多播带来很多麻烦。问题是您无法控制插入的顺序,因此可以在父记录之前插入子记录。

此外,对于表上的标识列,您无法从一个流中检索标识值并在另一个流中使用它而不使用后续合并连接。


推荐阅读