我在两台具有相同架构的服务器上有两个表。为简单起见,我们假设每个表有3个字段。我正在尝试创建一个SSIS包,它从两个表中获取数据并将其合并到一个记录集中。
我添加了两个OLE DB源,它们从两个表中获得相同的三个字段。然后我对每个进行了一次Sort转换,然后流入Merge Join。我将连接类型设置为" Full Outer Join"在合并加入。我可以选择所有六个字段,并使用Merge Join中的数据查看器查看输出。
让我们说每个源表中有25条记录。在数据查看器中,我最终得到50条记录 - 其中25条在最后三个字段中为NULL,在前三个字段中为25条。我希望输出为50条记录,只有三个字段的数据。我在这做错了什么?我应该使用其他类型的合并选项吗?
我非常感谢有关如何解决应该是一项简单任务的任何建议。谢谢!
答案 0 :(得分:1)
您正在使用的merge join
输出正确,因为您使用的是full outer join
。要解决您的问题,请使用merge
转换而不是merge join
。这会将您的两个已排序数据流合并为一个已排序的数据流。您已经从描述中正确设置了数据流(它应该如下所示):
可以在此处找到文档:https://msdn.microsoft.com/en-us/library/ms141703.aspx