在SSIS中使用Merge Join合并两个相似的表

问题描述 投票:0回答:1

我在两台不同的服务器上有两个具有相同架构的表。为简单起见,假设每个表有 3 个字段。我正在尝试创建一个 SSIS 包,该包从两个表中获取数据并将其合并到一个记录集中。

我添加了两个 OLE DB 源,它们从两个表中获取相同的三个字段。然后,我对每个转换进行排序转换,然后流入合并连接。我在合并连接上将连接类型设置为“完全外部连接”。我可以选择所有六个字段,并使用来自合并连接的数据查看器查看输出。

假设每个源表中有 25 条记录。在数据查看器中,我最终获得 50 条记录 - 25 条记录的最后三个字段为 NULL,25 条记录的前三个字段为 NULL。我希望输出为 50 条记录,其中数据仅包含三个字段。我在这里做错了什么?我应该使用其他类型的合并选项吗?

我将非常感谢任何关于如何解决这个简单任务的建议。谢谢!

sql-server join ssis merge
1个回答
0
投票

您正在使用的

merge join
的输出是正确的,因为您使用的是
full outer join
。要解决您的问题,请使用
merge
转换而不是
merge join
。这会将两个排序的数据流合并为一个排序的数据流。您已经根据描述正确设置了数据流(应该如下所示):

可以在此处找到文档:https://msdn.microsoft.com/en-us/library/ms141703.aspx

© www.soinside.com 2019 - 2024. All rights reserved.