SSIS导入使用外键数据?

SSIS import using foreign key data?

我有一个旧数据库 (OldDB),我正在使用 SSIS (2008) 和一个新数据库 (NewDB) 具有以下设置:

我正在使用 SSIS 迁移数据。到目前为止,我知道我需要对每个源使用排序转换,然后使用合并连接转换将新的 NewDB.Call.StatusID 映射到 OldDB.Call.Status 值。无论出于何种原因,它似乎开始时都很好,但最终会获取其他列(例如描述列)并在其中推送错误类型的数据。简而言之,它没有像应该的那样映射外键。

我在网上找到了很多关于如何执行此操作的示例 (like this),但似乎我遗漏了一些关键信息,无法理解我在做什么因为我一直很无聊。

在一个完美的世界中,循序渐进会很好,但一个好的、简洁的教程或解释也会很有用。 简而言之,我需要知道如何将这两个 table 连接起来并将 OldDB 中的值映射到 NewDB 中的外键并存储该值在 NewDB.CallStatus.

我将使用查找转换来满足此要求。

在 Lookup 定义中,Connection 将指向您的 NewDB.CallStatus(最佳做法是编写 SELECT,而不是只选择 table - 它缓存元数据)。在列窗格中,将状态映射到状态,然后选择 StatusID 作为查找列。

现在您的数据流会将添加的列传送到下游,您可以传送它(通常使用 OLE DB 目标)。

Lookup 的默认模式是完全缓存,与排序和合并解决方案相比,它会更快并且使用更少的内存。