我有一种情况,我需要将数据从一个表导入到另一个表。这里的挑战是在表中,我有一些列是对其他表值(外键的一种)的引用。我需要匹配这些引用列,如果字段匹配,我需要映射相应的 id,否则我需要在引用表中插入该值,然后在源表数据源中映射 id 并导入所有数据。
详细说明我的问题:
这就是我的 ETL 的样子。目前我正在“查找匹配”中继续执行,但如果“查找不匹配”,我还需要在相应的表中创建新记录。(对于我正在做的所有 8 次查找,我都需要这样做)。我不明白如何按顺序执行所有这些并在最后阶段导入所有数据。
这是我所做的:
正如大卫在上面指出的那样,要求有点含糊,但如果我理解正确,您希望导入在源系统中具有查找值的数据,并且如果目标系统中缺少这些查找值,那么您希望添加它们在目标系统中。您可以通过在数据流任务中使用查找转换来实现此目的。
具体来说,您可以在查找中添加查找无匹配输出。然后,该流可以连接到 OLE DB 目标或 SQL 任务,以添加不匹配的数据。
Robert Sheldon 写了一个很好的教程,你可以在 Simple Talk 网站上找到它:https://www.simple-talk.com/sql/ssis/implementing-lookup-logic-in-sql-server-integration-services /