SQL Server 2012 update


I'm looking for the SQL Server 2012 SSIS Dimension Merge SCD Component.
Thanks in advance for any help.

file attachments


toddmcdermid wrote Apr 5, 2012 at 12:19 AM

Currently not supported for SQL 2012 - keep watching for an update!

TODeveloper wrote May 2, 2012 at 3:15 PM

Any ideas when it will be supported?? I don't want to have to use something else...

wrote May 5, 2012 at 3:07 PM

pauljoubert wrote Jun 23, 2012 at 9:22 AM

Do you have a timeline for updating this component for SQL 2012?

wrote Jun 27, 2012 at 4:01 PM

wrote Jul 30, 2012 at 3:23 PM

wrote Aug 6, 2012 at 12:06 PM

wrote Aug 15, 2012 at 8:23 PM

chumeniuk wrote Aug 15, 2012 at 8:24 PM

Wanting to see if an update was coming any time soon? It appears that Pragmatic was able to get the component to work with 2012.

wrote Aug 17, 2012 at 11:35 AM

wrote Aug 24, 2012 at 5:19 PM

wrote Sep 29, 2012 at 10:43 AM

wrote Nov 19, 2012 at 7:53 AM

portisto wrote Nov 24, 2012 at 6:23 PM

Still no 2012 version? Please guys..

knyazs wrote Nov 28, 2012 at 1:40 PM

Hi everyone!

I just couldn't wait more for SQL Server 2012 version of this component, so I decided to "workaround": I created wizard for generating TSQL MERGE statement. Maybe it's not so fast as this component, but at least it's FREE.

My project definitely needs more testing and I will be very pleased if you could give me your opinions. Check it here: https://scdmergewizard.codeplex.com/

wrote Jan 31, 2013 at 9:43 AM

wrote Feb 21, 2013 at 11:28 PM

wrote Mar 8, 2013 at 10:16 AM

wrote Mar 27, 2013 at 9:45 PM

dro456 wrote Mar 27, 2013 at 9:46 PM

It's almost been a year since the last post... any updates?

dro456 wrote Mar 27, 2013 at 9:46 PM

wrote Apr 26, 2013 at 3:21 AM

wrote Jun 24, 2013 at 8:31 AM

mohit123narang wrote Jun 24, 2013 at 8:31 AM

Any Update for this :? I am still looking for the free version as I can't afford a paid version.

CINUE wrote Jun 25, 2013 at 4:01 PM

I have updated the component to work in SSIS 2012, I'm running tests, if that it works correctly i will publish a link to download.

CINUE wrote Jun 27, 2013 at 4:26 PM

I use this resources to migrate the component to SSIS 2012:


the common problems are where find dependency assemblies for SQL 2012:

C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.DataTransformationServices.Controls\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.DataTransformationServices.Controls.DLL v11

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Microsoft.DataTransformationServices.Design.DLL v11

I changed signing key and version too.

i hope this helps.

wrote Jun 28, 2013 at 8:57 PM

CINUE wrote Jun 28, 2013 at 8:57 PM

i share my compiled components for SSIS 2012.

wrote Jun 28, 2013 at 8:59 PM

wrote Jul 31, 2013 at 1:48 PM

wrote Aug 5, 2013 at 4:56 PM

lexsmeets wrote Aug 9, 2013 at 10:08 AM

Thans for the new version. However, we run into an anoying problem when using the component. It looks like it switches the input path of the existing dimenstion and the source data when you reopen it in desing mode and klick 'Finish'.

It results in a change of fields in the output paths.

CINUE wrote Aug 21, 2013 at 10:43 PM

This issue and error "Number of Existing Dimension columns selected (17) doesn't match expected count (43)" seems to be a problem in serialize and deserialize the xml of property "Existing Dimension Columns".

I'll update the component when the problem is fully corrected.

wrote Sep 19, 2013 at 3:45 PM

wrote Sep 29, 2013 at 11:46 PM

RadimHampel00 wrote Oct 1, 2013 at 3:17 PM

Hi, do you have any update on the serialization? We ran into same problem recently. If you want any help with development, let me know.

wrote Oct 1, 2013 at 4:54 PM

CINUE wrote Oct 1, 2013 at 4:54 PM

I share the source code in case anyone wants to help solve the problem.

wrote Oct 10, 2013 at 8:33 PM

wrote Nov 4, 2013 at 7:40 PM

pedelstein wrote Jun 2, 2014 at 8:27 PM

Has anyone been able to successfully get this to work with 2012? Everything appears to work fine until the package is run and then get an error "The component metadata for Dimension Merge Slowly Changing Dimension could not be upgraded to the newer version of the component"

Anyone else have this issue or know how to get past it?

pedelstein wrote Jun 3, 2014 at 2:20 PM

Here is the exact error. If anyone has any suggestions or things to let me know.

[SSIS.Pipeline] Error: The component metadata for
"Dimension Merge Slowly Changing Dimension 1, clsid {874F7595-FB5F-40FF-96AF-FBFF8250E3EF}"
could not be upgraded to the newer version of the component. The PerformUpgrade method failed.

[Dimension Merge Slowly Changing Dimension 1 [2]] Error:
The component is missing, not registered, not upgradeable, or missing required interfaces.
The contact information for this component is "".

[SSIS.Pipeline] Error: Dimension Merge Slowly Changing Dimension 1
failed validation and returned error code 0xC0048021.

CINUE wrote Sep 9, 2014 at 8:12 PM


You don't have installed the component correctly, and if you are migrating your package from 2008, you need to change manually the component string in package by editing the xml,because the version attached for 2012 has different public key token and version:
<property dataType="System.String"  name="UserComponentTypeName">MouldingAndMillwork.SSIS.DimensionMergeSCD, DimensionMergeSCD110, Version=, Culture=neutral, PublicKeyToken=5b38e594cb4f6ad4</property>

pixelbaker wrote Apr 30, 2015 at 5:07 PM

I'm a little bit unclear on how to install just this component rather than installing the 2008 version first - pretty sure I'm missing something. I've copied the two DLLs attached to this issue to /SQL Server/110/DTS/PipelineComponents for both the Program Files (x86) and Program Files directories, but no dice in getting them to show up in the toolbox when I launch VS 2012. Any tips apprecited.

VerdonTrigance wrote Oct 27, 2015 at 1:59 PM

I have same error that Pedelstein has.
But I'm not migrating from 2008, but create new package. In the package xml 'UserComponentTypeName' is correct.
I have copied both 'SSISComponentUtilities110.dll' and 'DimensionMergeSCD110.dll' to 'C:\Program Files\Microsoft SQL Server\110\DTS\PipelineComponents' and 'C:\Program Files\Microsoft SQL Server\110\DTS\Tasks'
I also installed them into GAC throught powershell like this:
Set-location "C:\Soft\Microsoft\SQL Server\DimensionMergeSSIS2012"
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacInstall("C:\Soft\Microsoft\SQL Server\DimensionMergeSSIS2012\SSISComponentUtilities110.dll")
And now they are in 'C:\Windows\Microsoft.Net\assembly\GAC_64\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a...'
So question is what I missed?

wrote Dec 23, 2015 at 2:14 PM

thijs_nijhuis wrote Dec 23, 2015 at 2:14 PM

I ran into this problem a few years back (as you might still see on some posts). After some effort I was able to compile the source code for sql server 2012 but the result was incredibly unstable. If you didn’t change anything it would work find but if you did change the package/components all sorts of problems occurred. Mainly the “Number of existing Dimension Columns… “ posted here before was something not so easily solved.

Recently I came across a new need for this component so I decided to learn how to create custom components and learned how to debug this component. It took me quite a while but in the end, this seems to be problem: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6425e61a-a7fe-4ce4-88fc-f90f544b25e9/lineageid-of-an-input-column-has-an-another-value-in-runtime?forum=sqlintegrationservices. In short, as of sql2012, lineageid’s are no longer persisted in the packages but assigned when the packages is opened. This also means that a column can have a different lineageid at design time then at runtime. As a result of that, custom component should no longer persist lineageid’s in its metadata but only column names.

So, I made some changes to the source code. Properties that persisted both column names and lineageid now only store column names. Properties that would store only lineageid, now only store column names. After the property configuration is loaded by the component, it will look up the current lineageid’s of that column and add it to the metadata. This way, most of the code can be left unchanged as the lineagesid’s are still available. I know there are quite a few places that could, or maybe should, be streamlined as well but that the changes described above are enough to solve the problems I ran into.

I also expanded the upgrade logic, which will make sure that properties in existing SCD component will be stripped of lineageid’s. I have name this version ‘version 12’.

So far I have only compiled the component with sql server 2014 dll’s as that is the only version I have installed. Shouldn’t be any problem to compile it for 2012.

Attached you will find the sources for the VS2013 solution with all the changes I made. All you need to do is compile, sign and register it. Code is provided “as is”. Make sure you test it properly before running it on a production environment as I (cannot) give you any guarantees.
I the zip you'll also find the compiled dll's for sql 2014. These you just have to copy to the VS folder and register in the GAC. Haven't tested that myself though.

P.S. The code contained a lot of compiler statement which made it possible to compile for 2005 as well as 2008. Very powerful but I decided to remove these as I don’t need compilation for 2005 and this made the code a lot less readable.

RadimHampel wrote Dec 23, 2015 at 4:02 PM

Hi Thijs, not only you are a good athlete (https://da.wikipedia.org/wiki/Thijs_Nijhuis), but you also write useful code! You deserve full credit for this. Thanks a lot!

thijs_nijhuis wrote Dec 23, 2015 at 6:12 PM

Haha, thanks. That guy in the wiki is not me though ;). I enjoy a good run but nothing that warrants a wiki. Very funny to see, didn’t know it exists.

martinschou wrote Jul 12 at 7:15 AM

Anyone who have tried updating the code for use with SQL Server 2016?

thijs_nijhuis wrote Jul 12 at 12:21 PM

Hi Martinschou, I haven't compiled the component with sql2016 dll myself. I don't expect much problems though. I don't think much has changed in this respect since 2012.