How to Define/Implement Type 2 SCD in SSIS using Slowly Changing Dimension Transformation



In last post we discussed about “Implementing Type 1 SCD in SSIS using Slowly Changing Dimension Transformation” and u can find the same here. Let us discuss about “How to define Type 2 SCD in SSIS using Slowly Changing Dimension Transformation” in this post. As most of us know that there are many types of SCDS available, here in this post we will cover only SCD Type 2. Before jumping into the demonstration, first let us know what this SCD Type 2 says –

In Type 2 SCD, a new record is added to the table to represent the new information. Therefore, both the original and the new record will be present. The new record gets its own primary key.


Emp_ID Emp_Name Country Start_Date End_Date
1 Roopesh India 01-01-11 NULL

Now, when the Country is changed to the Employee “Roopesh” from India to USA then  the data will be stored in the following way –

Emp_ID Emp_Name Country Start_Date End_Date
1 Roopesh India 01-01-11 13-03-12
2 Roopesh USA 13-03-12 NULL

The null End_Date in row two indicates the current tuple version. In some cases, a standardized surrogate high date (e.g. 9999-12-31) may be used as an end date, so that the field can be included in an index, and so that null-value substitution is not required when querying. So, in this case we can say the records with NULL as End_Date is the current record for an employee.

The major disadvantage of using this is the table SIZE grows faster as records will get added whenever there is change in data to maintain history and the advantage of using this Type is that we can track historical information accurately.  I hope you got some useful info regarding SCD type 2 and now let’s jump into SCD Transformation.

I have created two tables one Test_Stage(Which I am using as Staging table) and another one is Test(Which I am using as Main table) with the following syntax. You can clearly see that Main table is having TWO Extra columns to track history.

Create table Test_Stage
Emp_Id int,
Emp_Name Varchar(100),
Country Varchar(100)

Create table Test
Emp_Id int,
Emp_Name Varchar(100),
Country Varchar(100),
Start_Date Datetime,
End_Date DateTime

Now I inserted some records into my staging table i.e Test_Stage and PFB the scripts used –

Insert into test_stage Values(1,’Roopesh’,’India’);
Insert into test_stage Values(2,’Lokesh’,’Pakistan’);
Insert into test_stage Values(3,’Vinay’,’USA’);
Insert into test_stage Values(4,’Rakesh’,’China’);
Insert into test_stage Values(5,’Venki’,’Japan’);

Now Source data is ready and PFB the steps you have to follow to use Slowly Changing Dimension Transformation to implement Type 2 SCD.

  • Open SSIS Package and drag a dataFlow Task from toolbox to control Flow Pane as shown below.
  • Either double click or Right click on Data Flow Task and select EDIT as shown below.
  • One the Data Flow pane is opened then drag and drop OLEDB SOURCE from “Data Flow Sources” as shown below.
  • Now select EDIT by Right clicking on OLE DB Source and provide the Source details. remember that you have to provide Staging table connection details here.
  • Select columns tab and check whether columns are coming correctly or not.

  • Now drag and drop Slowly Changing Dimension Transformation in to the Data Flow Pane and provide the connection between OLE DB Source and SCD Transformation.
  • Now right click on the SCD Transformation and click on EDIT menu.
  • Select the dimension table(in our case it is “Test”) and Keys under “Select Dimension Table and Keys” page as shown below.

  • In the above screenshot, the Business Key is the column based on which we will filter the Newly added records from the existing one. In simple this is the column which we use to look up.
  • After selecting Next, Under “Slowly Changing Dimension Columns” select the columns that MAY change and select Change Type as “Changing Attribute” for those which we DOESN’T required to maintain HISTORY and select “Historical Attribute” for those whose HISTORY needs to be tracked. This is very important part of SCD and in other words this is the ONLY change we have when compared to SCD Type 1 and SCD Type 2 implementation in SSIS. When we select “Changing Attribute” for any attribute then it WON’T CREATE a new record when there is a change in this value and if you select “Historical Attribute” then if there is any change in this attribute value then a NEW RECORD will be created to track history.
  • In the above screenshot we can see that for Country attribute I selected “Historical Attribute” as I wish to track the historical changes for that attribute and hence when ever there is a change in that particular attribute column value then only it tracks history by creating a new record and for other attribute Emp_Name, it will directly apply UPDATE on the table.


  • Check the option “Change all the matching records including the outdated records…….” if you wish to have that functionality and click Next.
  • Under “Historical Attributes Option” page select “Use Start and End date to identify current and expired records” option and by selecting start date column and End date column click on NEXT.
  • Click Next and finally click on Finish by leaving the default options as is.
  • Once you click on Finish, SSIS server creates all the functionality that is required to implement SCD Type 1 based on the information provided by us. It will add Data flow tasks for Inserting new records and updating existing records as shown below.
  • Now if I run the package then it will check for newly added records and inserts those records and updates the already existing records if there is any change in data. As there is NO RECORDS in TEST table in this run it will load all the records under New Insert as shown below.
  • PFB the Screenshot of the data tables output after running the package. You can see data got loaded in to our table “TEST” with Start_Date as current Date.
  • Now I updated the existing records in staging table using the following queries and once I run the package again we can see data getting updated into our main table.
              update test_stage set Country = ‘USA’ where Emp_Id = 1
  • Once I run the package you can see the package showing “1 rows” under “Historical Attributes Inserts Output” section as shown below.
  • Now if you run the queries you can see the data updated in TEST table.
That’s it guys .. Now we implemented SCD Type 2 using Slowly Changing Dimension Transformation. This is as simple as this. Hope you understood the concept. Happy Coding !!


Roopesh Babu V


  1. Cheers, I like this.
    [url=]write my essay for me cheap[/url] what should i do my essay on [url=]who can write my book for me[/url] expert essay writers

  2. You expressed it exceptionally well!
    [url=]write my research paper for me cheap[/url] write my essay online for cheap [url=]help i can t write my essay[/url] write a research-based argumentative essay for or against health care for everyone.

  3. Good posts, Kudos.
    [url=]write essay[/url] write my match com profile for me [url=]someone to write my essay for me[/url] essay writer bot

  4. Thank you, A lot of posts!
    [url=]write me an essay[/url] cheapest essay writers [url=]write my essay for money[/url] my favourite writer essay in english

  5. Wow loads of helpful data.
    [url=]write my essay paper for me[/url] how do i celebrate my birthday essay [url=]motivation to write my essay[/url] application essay writer

  6. You suggested this superbly.
    [url=]paper writing service reddit[/url] paper writing service ivy professional [url=]professional research paper writing services[/url] custom paper services

  7. Amazing plenty of valuable advice!
    [url=]how do i focus on my homework[/url] do my english homework for me [url=]do my french homework for me free[/url] i need to do my homework right now

  8. You’ve made your position pretty well..
    [url=]medical essay writing service[/url] benefits of essay writing services [url=]best essay writing service forum[/url] dissertation essay writing service

  9. Nicely spoken truly! .
    [url=]write my paper for me[/url] how to write a philosophy paper [url=]writers of the federalist papers[/url] i need someone to write my research paper

  10. Football livescores cover all leagues across the world. With this, you can expect to find the results of your favorite league in real-time. Some of the leagues include: Right now when you sign up and make your first bet of 10 EUR or more, you’ll get a 20 EUR free bet. That’s a great first offer, and it couldn’t be easier to claim. All you have to do is sign up and make that first bet of 10 EUR or more at odds of 1.5 or greater. Once you’ve done that, the free bet will be ready and waiting in your account. Turboscores is the one stop shop for football betting, covering football across the world. Here on Turboscores you’ll find football live scores, football betting tips and football predictions, as well as betting odds, free bet offers, bookmaker bonuses, bookmaker reviews and info on how to live stream.
    Forest thought they had got back into the match midway through the first half, but Willy Boly’s goal from a free kick was ruled out for offside. This was undoubtedly United’s best performance of the season. It will also rank highly among their top displays under any of their previous three managers — and maybe beyond. READ MORE: Man Utd lost to Liverpool over £44m Gakpo? Red Devils were right to to be reticent CR7 joins Saudi Arabian club as a free agent after leaving Man Utd is simply the best livescore site in English. With score at 2-1 with five minutes remaining, the forward scored a brilliant goal to clinch the victory and became a cult hero at Old Trafford. Save up to 50% OFF selected items in our Club Shop throughout January. Yellow Away shirt was £42 now £25! Plus up to 50% off selected leisure, training wear and souvenirs. Once it’s gone, it’s gone!

  11. Принадлежности для салона Уход для ресниц и бровей Или можете купить товар в рассрочку на более гибких условиях Для приготовления смешанных составов рекомендуется использовать в дополнение к жожоба эфирные масла лаванды, розмарина, имбиря, сосны, эвкалипта, шалфея. Среди других эфиров, с которыми сочетается жожоба — апельсиновое, ромашковое, иланг-иланг, розовое масло. Обогащать уходовый комплекс из масел можно рыбьим жиром и витамином Е. Способ применения: наносить масло на чистые брови и ресницы не чаще 1 раза в день. Избегать попадания в глаза. Излишки масла промокнуть салфеткой. Очень важную роль играет в составе БАЛЬЗАМА ДЛЯ РЕСНИЦ и ароматерапевтический комплекс, состоящий из «оживляющих» эфирных масел мирры, герани и иланг-иланга. После сбора заказа вам придет смс/e-mail уведомление о готовности.
    Мария Андреева, визажист центра красоты «Белый Сад» на Зубовском: Мария Андреева, визажист центра красоты «Белый Сад» на Зубовском: Загрузка файла Гелеобразное средство для укладки и фиксации бровей Несмотря на не особую популярность, гель для бровей и ресниц может послужить обладательницам густых непослушных бровей и длинных ресниц хорошую службу. Это, как правило, средство гелевой текстуры, которое поможет вам зафиксировать волоски в нужном положении. Он поможет выглядеть ухоженно 24/7, быть уверенной в том, что тушь не осыплется, а брови не “потекут” в самый неподходящий момент. При проблемных бровях вы можете купить гелевое средство с уходовыми свойствами, укрепляющее волоски и стимулирующее их рост. Для длительного окрашивания подходит гель-тинт, а для оформления и создания формы используется тонирующий гель-крем. Никаких особых навыков при использовании обычного геля в домашних условиях не требуется (пожалуй, трудности могут возникнуть только с гелем-тинтом). Запомните основное правило: гель наносится в последнюю очередь, после всех остальных средств для макияжа бровей. Если говорить о том, как именно покрывать брови гелем, то основных способов — три.

  12. Leukocyte telomere dynamics, gender, menopause, insulin resistance and survival where can i buy viagra One hundred forty eight patients with essential hypertension, none of whom had received prior therapy, were recruited from the Outpatient Clinic for Hypertension of San Raffaele Hospital of Milan

  13. A p21 expression was quantified in T47D cells grown in estrogen free media for 3 days and then treated with DMSO, 10 ОјM DIM and 50 ОјM DIM for 24 h cialis generic name Though every naturopath recommends different herbs based on each woman s condition, there are certain cleansing herbs that are generally selected to detoxify the liver and uterus


Please enter your comment!
Please enter your name here

2 + 2 =