The Merge Join Transformation in SSIS is used to perform SQL Joins such as Inner Join, Left Outer Join, Full Outer Join and Right Outer Join (indirectly achieved by Swapping the tables) in SQL Server Integration Services. SSIS Merge Join Transformation is very useful to load data into the Dimension tables in Data Warehouse.
NOTE: The Merge Join Transformation in SSIS will only work with Sorted data. So, Sort Transformation is mandatory before applying any joins using Merge Join Transformation. Please refer to Sort Transformation in SSIS article to understand, How to perform Sort Operations on the Source Data.
Merge Join Transformation in SSIS Example
In this article, we are going to perform Inner Join on two SQL tables using Merge Join Transformation in SSIS. Before we start creating the SSIS Package, let us look at our two source tables on which we are going to perform Inner Join using ssis Merge Join Transformation.
Employees Table inside the [SSIS Tutorial] Database is:
Department Table inside the [SSIS Tutorial] Database is:
STEP 1: Drag and drop the data flow task from the toolbox to the control flow region and rename it as Performing Inner Join Using Merge Join Transformation in SSIS
Double click on the data flow task will take us to the Data flow region.
STEP 2: Drag and Drop two OLE DB Sources from the toolbox to the data flow region. Then double-click on the first OLE DB source in the data flow region will open the connection manager settings and provides an option to select the table holding the source data.
From the above screenshot, you can observe that We selected [Employees] Table from [SSIS Tutorials] Database
STEP 3: Click on the columns tab to verify the columns. In this tab, we can uncheck the unwanted columns.
STEP 4: Double click on the second OLE DB source to configure the Second table to perform SSIS Inner Join using Merge Join transformation. Here we are selecting the [Department] Table from [SSIS Tutorials] Database
STEP 5: repeat step 3
Sort Transformation before SSIS Merge Join
STEP 6: Drag and drop two Sort Transformations from the SSIS toolbox to the Data Flow region and connect the OLE DB Source output arrow to the Sort Transformation.
STEP 7: Double click on Sort Transformation to configure it. Check the columns we want to sort, and don’t forget to Pass Through the remaining column. If you forget to select the Pass Through, they won’t appear in output columns.
From the source data, DepartID is the Joining key between Employees and Department tables. So we are sorting the Employees table by DepartID in ascending order.
Double click on Sort Transformation1 and sort the Department table using the id column in ascending order.
SSIS Merge Join Transformation Configuration
STEP 8: Now drag and drop the Merge Join Transformation into the data flow region to perform Inner Join on the sorted tables.
When you drag the output arrow of the Sort Transformation into Merge Join Transformation, an Input Output Selection window will appear to select whether it is Merge Join Left Input or Merge Join Right Input, as shown in the below screenshot.
Here we selected Merge Join Left Input for Employees table. Click ok and drag and drop the output arrow of the Sort Transformation 1. Here Merge Join Right Input automatically selected by the intelligence.
STEP 9: Double click on Merge Join Transformation will open the Merge Join Transformation Editor to configure it.
Join Type provides a drop-down list to select the Join type (such as SSIS Inner Join, Left Outer Join, and Full Outer Join) you want to perform on the source data. In this example, we were performing SSIS Inner Join. That’s why we selected the Inner Jon option from the Join Type option.
As you can observe from the source data, both Employees and Department tables are joined using DepartID and id columns. So select them as Join keys by dragging the arrow.
Now choose the columns to send to the destination table (Pass through columns) by check-marking the column names.
From the above screenshot, you can observe that, We selected [First Name], [Last Name], and [Department Name] columns as output columns. It means SSIS Inner Join will produce output columns as [First Name], [Last Name], and [Department Name], where DepartID is exactly equal to any of the id column data.
TIP: Whatever columns you select here will only transfer to the destination table. If you don’t want any column, uncheck that column.
STEP 10: Drag and drop the OLE DB destination into the data flow region. Next, double-click on it to configure the destination server and destination table to store the Merge Join Transformation output
Here we selected [SSIS Tutorials] as database and [Inner Join Using Merge Join Transformation] as the destination table
STEP 11: Click on the columns Tab to check whether input columns are matching with the destination columns or not. If not, Please assign the appropriate columns to destination columns
We finished designing the Performing Inner Join Using Merge Join Transformation in SSIS package. Let us execute the package
Now let’s open the SQL Server Management Studio and select the columns from Inner Join Using Merge Join Transformation in SSIS table.