Welcome

首页 / 数据库 / SQLServer / SSIS 系列 - Merge, Merge Join, Union All 合并组件的使用

SSIS 系列 - Merge, Merge Join, Union All 合并组件的使用2014-08-02SSIS 系列 - Merge, Merge Join, Union All 合并组件的使用以及Sort 排序组件同步异步的问题

SSIS Data Flow 中有几个组件可以实现不同数据源的数据合并功能,比如 Merger, Merge Join 和 Union All。它们的功能比较类似,同时也比较容易混淆,下面是对它们之间的区别的对比总结。

下面通过三个 Data Flow 来演示这三个组件的使用以及相关的配置。

测试数据源 -

第一个数据源是一张表

USE BIWORK_SSISGO-- Merge demo tableIF OBJECT_ID("DEMO_MG_Customer","U") IS NOT NULLDROP TABLE DEMO_MG_CustomerGOCREATE TABLE DEMO_MG_Customer(CustomerID INT PRIMARY KEY,CustomerCompany NVARCHAR(255),CustomerName NVARCHAR(20),CustomerAddress NVARCHAR(255))INSERT INTO DEMO_MG_Customer VALUES(1,"HFBZG","Allen,Michael","Obere Str. 0123"),(2,"MLTDN","Hassall, Mark","Avda. de la Constitución 5678"),(3,"KBUDE","Peoples, John","Mataderos1000")SELECT * FROM DEMO_MG_Customer

第二个数据源是一个文本文件

ID,Company,CustomerName,Title,Address

1,"NRZBB","Allen,Michael","Sales Representative","Obere Str. 0123"

2,"MLTDN","Hassall, Mark","Owner","Avda. de la Constitución 5678"

3,"KBUDE","Peoples, John","Owner","Mataderos  7890"

4,"HFBZG","Arndt, Torsten","Sales Representative","7890 Hanover Sq."

5,"HGVLZ","Higginbotham, Tom","Order Administrator","Berguvsvgen  5678"

示例一 - 使用 Merge 来合并数据

上面已经说了 Merge 的特点-

输入数据源 - 两个

输入数据源 - 表或者文件等

合并时要求元数据相同,数据类型相同

合并前需要排序