<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>ssismhash Wiki &amp; Documentation Rss Feed</title><link>http://ssismhash.codeplex.com/Wiki/View.aspx?title=Home</link><description>ssismhash Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=18</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin"&gt;Keith Martin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Download:&lt;br /&gt;The Default Download is for SQL Server 2012.  If you are using SQL 2005, 2008 or 2008R2, then please select the appropriate download from the View All Downloads link to the right.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/"&gt;http://ssismhash.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;Programming: &lt;a href="http://ssismhash.codeplex.com/wikipage?title=Programmatically%20Creating%20a%20Multiple%20Hash%20component%20in%20a%20Data%20Flow&amp;referringTitle=Home"&gt;Programmatically Creating a Multiple Hash component in a Data Flow&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.6.1.&lt;br /&gt;This release corrects a bug for systems with greater than 32 cores.&lt;br /&gt;&lt;br /&gt;nb.  If using a previous version on a system with greater than 32 cores, disable Multiple Threading as a work around.&lt;br /&gt;&lt;br /&gt;Version 1.6 Details:&lt;br /&gt;This release corrects a bug in date time handling, where milliseconds were not being hashed.  Updating the component will NOT automatically correct this in existing packages.  You will have to tick the box Milliseconds to enable this.  This has been done to preserve backwards compatability.&lt;br /&gt;&lt;br /&gt;If you are not hashing Date Time data types with a requirement for millisecond precision, then you don&amp;#39;t need to update your component version.&lt;br /&gt;&lt;br /&gt;Version 1.5.1 Details:&lt;br /&gt;This release improves performance significantly, and corrects a UI defect in multiple select.&lt;br /&gt;&lt;br /&gt;Version 1.5 Details:&lt;br /&gt;This release adds 4 new Hash algorithms, and corrects a defect in the multiple select capability.&lt;br /&gt;&lt;br /&gt;Version 1.4.1 Details:&lt;br /&gt;This release adds multiple select/deselect capability to the Input and Output tabs for the check box columns.&lt;br /&gt;&lt;br /&gt;Version 1.4 Details:&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes SQL 2012 support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Thu, 29 Nov 2012 02:20:29 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121129022029A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://ssismhash.codeplex.com/documentation?version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Usage Instructions&lt;/h1&gt;The following should assist you in using this component.&lt;br /&gt;
&lt;h2&gt;Installation&lt;/h2&gt;After downloading the appropriate setup files, unzip them, and execute the Setup.exe file.&lt;br /&gt;&lt;br /&gt;If you have a previous version (1.0, 1.1, 1.2, 1.2.1, 1.3 or 1.3.1) you will get a dialog box informing you that you must uninstall the previous version.&lt;br /&gt;Do this, and then restart the installation.&lt;br /&gt;&lt;br /&gt;Once the installation has completed, you will need to start BIDS, and add the new component into the Toolbox.&lt;br /&gt;This is done as follows:
&lt;ol&gt;&lt;li&gt;Add a data flow task into a new Integration Services package&lt;/li&gt;
&lt;li&gt;Open the data flow task&lt;/li&gt;
&lt;li&gt;Display the Toolbox&lt;/li&gt;
&lt;li&gt;Right click the Data Flow Transformations within the Toolbox&lt;/li&gt;
&lt;li&gt;Select Choose Items&lt;/li&gt;
&lt;li&gt;Switch to the SSIS Data Flow Items tab&lt;/li&gt;
&lt;li&gt;Tick the check box next to Multiple Hash in the list&lt;/li&gt;
&lt;li&gt;Ok your way out of the dialog boxes&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Inputs&lt;/h2&gt;The component needs a single input.&lt;br /&gt;
&lt;h2&gt;Outputs&lt;/h2&gt;The component generates a single output.  This output will add new columns to your data flow that will be Binary data from the Hash functions.&lt;br /&gt;The following Hash functions are supported:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;th&gt; Size &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; MD5 &lt;/td&gt;&lt;td&gt; 16 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Ripe MD 160 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA1 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA256 &lt;/td&gt;&lt;td&gt; 32 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA384 &lt;/td&gt;&lt;td&gt; 48 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA512 &lt;/td&gt;&lt;td&gt; 64 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; CRC32 &lt;/td&gt;&lt;td&gt; 4 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; CRC32C &lt;/td&gt;&lt;td&gt; 4 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; FNV1a 32 &lt;/td&gt;&lt;td&gt; 4 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; FNV1a 64 &lt;/td&gt;&lt;td&gt; 8 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigInputTab&amp;referringTitle=Documentation"&gt;Input Columns Tab&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;referringTitle=Documentation"&gt;Output Columns Tab&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;To use, drop the component on the design surface.&lt;/li&gt;
&lt;li&gt;Connect it to a Data Flow Source&lt;/li&gt;
&lt;li&gt;Edit the component&lt;/li&gt;
&lt;li&gt;Select the Input Columns Tab (should already be active)&lt;/li&gt;
&lt;li&gt;Tick the columns that will be used for generation of the hash&amp;#39;s.  If planning more than one hash, then ensure that you select the columns for all hash&amp;#39;s to be generated.&lt;/li&gt;
&lt;li&gt;If you will have a large number of output columns, and will be excuting on a multi core machine, then consider enabling the Multiple Threading
&lt;ol&gt;&lt;li&gt;None will not do Multiple Threading&lt;/li&gt;
&lt;li&gt;Auto will do some basic checking, before enabling multiple threading (number of CPU&amp;#39;s, and Number of Outputs)&lt;/li&gt;
&lt;li&gt;On will enable multiple threading (regardless of the number of CPU Core&amp;#39;s etc.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Switch to the Output Columns Tab&lt;/li&gt;
&lt;li&gt;In the Output Columns list, enter a new column name, and then select the Hash function&lt;/li&gt;
&lt;li&gt;The list to the right should now be populated with the columns that you selected on the Input Columns Tab.&lt;/li&gt;
&lt;li&gt;Tick the columns that you wish to use for this Hash.&lt;/li&gt;
&lt;li&gt;Repeat 8 though 10 until finished.&lt;/li&gt;
&lt;li&gt;Add a Data Flow Destination&lt;/li&gt;
&lt;li&gt;Connect the Output from the component to the Data Flow Destination&lt;/li&gt;
&lt;li&gt;Run your SSIS component...&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Programming&lt;/h2&gt;See the following article:&lt;br /&gt;&lt;a href="http://ssismhash.codeplex.com/wikipage?title=Programmatically%20Creating%20a%20Multiple%20Hash%20component%20in%20a%20Data%20Flow&amp;referringTitle=Documentation"&gt;Programmatically Creating a Multiple Hash component in a Data Flow&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Thu, 29 Nov 2012 02:19:57 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20121129021957A</guid></item><item><title>Updated Wiki: Programmatically Creating a Multiple Hash component in a Data Flow</title><link>http://ssismhash.codeplex.com/wikipage?title=Programmatically Creating a Multiple Hash component in a Data Flow&amp;version=1</link><description>&lt;div class="wikidoc"&gt;The following is a bit of &amp;quot;sample&amp;quot; code that can be used to create a SSIS package that reads from master.sys.databases, and then passes each row into Multiple Hash, and generates a single hash from the entire input row.  There is no additional components to do anything with the output from the Multiple Hash component shown in the example.&lt;br /&gt;&lt;br /&gt;You will need to add references to:&lt;br /&gt;Microsoft.SqlServer.DTSPipelineWrap&lt;br /&gt;Microsoft.SQLServer.DTSRuntimeWrap&lt;br /&gt;Microsoft.SQLServer.ManagedDTS&lt;br /&gt;in your project.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; System.Text;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; Microsoft.SqlServer.Dts.Runtime;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; Microsoft.SqlServer.Dts.Pipeline;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; Microsoft.SqlServer.Dts.Pipeline.Wrapper;

&lt;span style="color:Blue;"&gt;namespace&lt;/span&gt; GenerateSSISPackage
{
    &lt;span style="color:Blue;"&gt;class&lt;/span&gt; Program
    {
        &lt;span style="color:Blue;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:Blue;"&gt;string&lt;/span&gt;[] args)
        {
            String lineageIDs = &lt;span style="color:Blue;"&gt;string&lt;/span&gt;.Empty;
            Package package;
            Application app = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Application();
            package = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Package();

            &lt;span style="color:Green;"&gt;// Add a data flow task to the package.&lt;/span&gt;
            Executable dataFlowTask = package.Executables.Add(&lt;span style="color:#A31515;"&gt;&amp;quot;STOCK:PipelineTask&amp;quot;&lt;/span&gt;);
            TaskHost taskHost = dataFlowTask &lt;span style="color:Blue;"&gt;as&lt;/span&gt; TaskHost;

            &lt;span style="color:Green;"&gt;// Name the task&lt;/span&gt;
            taskHost.Name = &lt;span style="color:#A31515;"&gt;&amp;quot;Data Flow Task&amp;quot;&lt;/span&gt;;
            &lt;span style="color:Green;"&gt;// We need a reference to the InnerObject to add items to the data flow&lt;/span&gt;
            MainPipe pipeline = taskHost.InnerObject &lt;span style="color:Blue;"&gt;as&lt;/span&gt; MainPipe;

            &lt;span style="color:Green;"&gt;// Create a OLEDB connection to the master database (on an instance called SQL2008R2)&lt;/span&gt;
            ConnectionManager connection = package.Connections.Add(&lt;span style="color:#A31515;"&gt;&amp;quot;OLEDB&amp;quot;&lt;/span&gt;);
            connection.Name = &lt;span style="color:#A31515;"&gt;&amp;quot;Source Connection&amp;quot;&lt;/span&gt;;
            connection.ConnectionString = &lt;span style="color:#A31515;"&gt;@&amp;quot;Data Source=.\SQL2008R2;Initial Catalog=master;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;&amp;quot;&lt;/span&gt;;

            &lt;span style="color:Green;"&gt;// Provide the required properties for the OLEDB connection&lt;/span&gt;
            IDTSComponentMetaData100 srcComponent = pipeline.ComponentMetaDataCollection.New();
            srcComponent.ComponentClassID = &lt;span style="color:#A31515;"&gt;&amp;quot;DTSAdapter.OleDbSource&amp;quot;&lt;/span&gt;;
            srcComponent.ValidateExternalMetadata = &lt;span style="color:Blue;"&gt;true&lt;/span&gt;;
            IDTSDesigntimeComponent100 srcDesignTimeComponent = srcComponent.Instantiate();
            srcDesignTimeComponent.ProvideComponentProperties();
            srcComponent.Name = &lt;span style="color:#A31515;"&gt;&amp;quot;OleDb Source&amp;quot;&lt;/span&gt;;

            &lt;span style="color:Green;"&gt;// Configure it to read from sys.databases&lt;/span&gt;
            srcDesignTimeComponent.SetComponentProperty(&lt;span style="color:#A31515;"&gt;&amp;quot;AccessMode&amp;quot;&lt;/span&gt;, 0);
            srcDesignTimeComponent.SetComponentProperty(&lt;span style="color:#A31515;"&gt;&amp;quot;OpenRowset&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;[sys].[databases]&amp;quot;&lt;/span&gt;);

            &lt;span style="color:Green;"&gt;// Set the connection manager&lt;/span&gt;
            srcComponent.RuntimeConnectionCollection[0].ConnectionManager = DtsConvert.GetExtendedInterface(connection);
            srcComponent.RuntimeConnectionCollection[0].ConnectionManagerID = connection.ID;

            &lt;span style="color:Green;"&gt;// Retrieve the column metadata&lt;/span&gt;
            srcDesignTimeComponent.AcquireConnections(&lt;span style="color:Blue;"&gt;null&lt;/span&gt;);
            srcDesignTimeComponent.ReinitializeMetaData();
            srcDesignTimeComponent.ReleaseConnections();


            &lt;span style="color:Green;"&gt;//&lt;/span&gt;
            &lt;span style="color:Green;"&gt;// Add the Multiple Hash&lt;/span&gt;
            &lt;span style="color:Green;"&gt;//&lt;/span&gt;

            &lt;span style="color:Green;"&gt;// If you want to see all the components on your machine, uncomment the following code.  The CreationName is what you place into the PipelineComponentInfos&lt;/span&gt;
            &lt;span style="color:Green;"&gt;//foreach (PipelineComponentInfo pci in app.PipelineComponentInfos)&lt;/span&gt;
            &lt;span style="color:Green;"&gt;//{&lt;/span&gt;
            &lt;span style="color:Green;"&gt;//    Console.WriteLine(String.Format(&amp;quot;{0}, {1}, {2}&amp;quot;, pci.CreationName, pci.Description, pci.FileName));&lt;/span&gt;
            &lt;span style="color:Green;"&gt;//}&lt;/span&gt;

            &lt;span style="color:Green;"&gt;// Create a new object in the Pipeline&lt;/span&gt;
            IDTSComponentMetaData100 metaDataMultipleHash = pipeline.ComponentMetaDataCollection.New();
            &lt;span style="color:Green;"&gt;// Name it&lt;/span&gt;
            metaDataMultipleHash.Name = &lt;span style="color:#A31515;"&gt;&amp;quot;Multiple Hash Test&amp;quot;&lt;/span&gt;;
            &lt;span style="color:Green;"&gt;// Assign it to the Multiple Hash component.&lt;/span&gt;
            metaDataMultipleHash.ComponentClassID = app.PipelineComponentInfos[&lt;span style="color:#A31515;"&gt;&amp;quot;Martin.SQLServer.Dts.MultipleHash, MultipleHash2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=51c551904274ab44&amp;quot;&lt;/span&gt;].CreationName;
            &lt;span style="color:Green;"&gt;// Instantiate the component, so that we can configure it.&lt;/span&gt;
            CManagedComponentWrapper instance = metaDataMultipleHash.Instantiate();

            &lt;span style="color:Green;"&gt;// Initialize the component&lt;/span&gt;
            instance.ProvideComponentProperties();
            instance.ReinitializeMetaData();

            &lt;span style="color:Green;"&gt;// Set suitable defaults&lt;/span&gt;
            metaDataMultipleHash.CustomPropertyCollection[&lt;span style="color:#A31515;"&gt;&amp;quot;MultipleThreads&amp;quot;&lt;/span&gt;].Value = 1; &lt;span style="color:Green;"&gt;// Auto&lt;/span&gt;
            metaDataMultipleHash.CustomPropertyCollection[&lt;span style="color:#A31515;"&gt;&amp;quot;SafeNullHandling&amp;quot;&lt;/span&gt;].Value = 1; &lt;span style="color:Green;"&gt;// True&lt;/span&gt;

            &lt;span style="color:Green;"&gt;// Create a path from the source component to the new Multiple Hash component&lt;/span&gt;
            IDTSPath100 path = pipeline.PathCollection.New();
            path.AttachPathAndPropagateNotifications(srcComponent.OutputCollection[0], metaDataMultipleHash.InputCollection[0]);

            &lt;span style="color:Green;"&gt;// Select which columns are to be hashed&lt;/span&gt;

            &lt;span style="color:Green;"&gt;// Grab the input from the Multiple Hash component&lt;/span&gt;
            IDTSInput100 destInput = metaDataMultipleHash.InputCollection[0];
            IDTSVirtualInput100 destVirInput = destInput.GetVirtualInput();

            &lt;span style="color:Green;"&gt;// This just selects all the columns!&lt;/span&gt;
            &lt;span style="color:Green;"&gt;// If you were to be doing named columns, then you would find them in the collection.&lt;/span&gt;
            &lt;span style="color:Green;"&gt;// And you would only SetUsageType to those specific columns.&lt;/span&gt;
            &lt;span style="color:Green;"&gt;// Iterate through the virtual input column collection.&lt;/span&gt;
            &lt;span style="color:Blue;"&gt;foreach&lt;/span&gt; (IDTSVirtualInputColumn100 vColumn &lt;span style="color:Blue;"&gt;in&lt;/span&gt; destVirInput.VirtualInputColumnCollection)
            {
                &lt;span style="color:Green;"&gt;// Call the SetUsageType method of the destination&lt;/span&gt;
                &lt;span style="color:Green;"&gt;//  to add each available virtual input column as an input column.&lt;/span&gt;
                instance.SetUsageType(
                   destInput.ID, destVirInput, vColumn.LineageID, DTSUsageType.UT_READONLY);

                &lt;span style="color:Green;"&gt;// As we are only going to do a single output in this example, just string all the input&amp;#39;s ID&amp;#39;s into the lineage string...&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;if&lt;/span&gt; (&lt;span style="color:Blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(lineageIDs))
                    lineageIDs = &lt;span style="color:#A31515;"&gt;&amp;quot;#&amp;quot;&lt;/span&gt; + vColumn.LineageID.ToString();
                &lt;span style="color:Blue;"&gt;else&lt;/span&gt;
                    lineageIDs += &lt;span style="color:#A31515;"&gt;&amp;quot;,#&amp;quot;&lt;/span&gt; + vColumn.LineageID.ToString();
            }


            &lt;span style="color:Green;"&gt;// Create a new output column&lt;/span&gt;
            IDTSOutputColumn100 outputColumn = instance.InsertOutputColumnAt(metaDataMultipleHash.OutputCollection[0].ID, 0, &lt;span style="color:#A31515;"&gt;&amp;quot;OutputCol1&amp;quot;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;quot;Output Column 1&amp;quot;&lt;/span&gt;);
            &lt;span style="color:Green;"&gt;// Set the Hash Type.  The available hashes are 1 = MD5, 2 = RipeMD160, 3 = SHA1, 4 = SHA256, 5 = SHA384, 6 = SHA512, 7 = CRC32, 8 = CRC32C, 9 = FNV1a32, 10 = FNV1a64&lt;/span&gt;
            outputColumn.CustomPropertyCollection[&lt;span style="color:#A31515;"&gt;&amp;quot;HashType&amp;quot;&lt;/span&gt;].Value = 1; &lt;span style="color:Green;"&gt;// MD5&lt;/span&gt;

            &lt;span style="color:Green;"&gt;// Set the list of lineage id&amp;#39;s that will be hashed for this column.&lt;/span&gt;
            outputColumn.CustomPropertyCollection[&lt;span style="color:#A31515;"&gt;&amp;quot;InputColumnLineageIDs&amp;quot;&lt;/span&gt;].Value = lineageIDs;

            &lt;span style="color:Green;"&gt;// You should add a destination and another Path here from Multiple Hash to the destination.&lt;/span&gt;
            &lt;span style="color:Green;"&gt;// Details for this are http://msdn.microsoft.com/en-us/library/ms136086.aspx&lt;/span&gt;

            &lt;span style="color:Green;"&gt;// Save the package.&lt;/span&gt;
            app.SaveToXml(&lt;span style="color:#A31515;"&gt;@&amp;quot;E:\Temp\Test.dtsx&amp;quot;&lt;/span&gt;, package, &lt;span style="color:Blue;"&gt;null&lt;/span&gt;);

        }
    }
}
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Thu, 29 Nov 2012 02:18:59 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Programmatically Creating a Multiple Hash component in a Data Flow 20121129021859A</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=17</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin"&gt;Keith Martin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Download:&lt;br /&gt;The Default Download is for SQL Server 2012.  If you are using SQL 2005, 2008 or 2008R2, then please select the appropriate download from the View All Downloads link to the right.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/"&gt;http://ssismhash.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.6.1.&lt;br /&gt;This release corrects a bug for systems with greater than 32 cores.&lt;br /&gt;&lt;br /&gt;nb.  If using a previous version on a system with greater than 32 cores, disable Multiple Threading as a work around.&lt;br /&gt;&lt;br /&gt;Version 1.6 Details:&lt;br /&gt;This release corrects a bug in date time handling, where milliseconds were not being hashed.  Updating the component will NOT automatically correct this in existing packages.  You will have to tick the box Milliseconds to enable this.  This has been done to preserve backwards compatability.&lt;br /&gt;&lt;br /&gt;If you are not hashing Date Time data types with a requirement for millisecond precision, then you don&amp;#39;t need to update your component version.&lt;br /&gt;&lt;br /&gt;Version 1.5.1 Details:&lt;br /&gt;This release improves performance significantly, and corrects a UI defect in multiple select.&lt;br /&gt;&lt;br /&gt;Version 1.5 Details:&lt;br /&gt;This release adds 4 new Hash algorithms, and corrects a defect in the multiple select capability.&lt;br /&gt;&lt;br /&gt;Version 1.4.1 Details:&lt;br /&gt;This release adds multiple select/deselect capability to the Input and Output tabs for the check box columns.&lt;br /&gt;&lt;br /&gt;Version 1.4 Details:&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes SQL 2012 support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Sun, 04 Nov 2012 11:28:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121104112807A</guid></item><item><title>Updated Wiki: ConfigOutputTab</title><link>http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Output Columns Tab&lt;/h1&gt;
This tab allows you to:
&lt;ul&gt;&lt;li&gt;add new output columns&lt;/li&gt;
&lt;li&gt;rename existing output columns&lt;/li&gt;
&lt;li&gt;change the Hash function used on output columns&lt;/li&gt;
&lt;li&gt;select which input columns are used for a hash&lt;/li&gt;
&lt;li&gt;change the order of the input columns used for a hash&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=285221" alt="Output&amp;#32;Columns&amp;#32;Tab" title="Output&amp;#32;Columns&amp;#32;Tab" /&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;In the Output Columns grid, select the output column (or if none entered, the first row).&lt;br /&gt;Add/Change the column name&lt;br /&gt;Select the Hash Function.&lt;br /&gt;If you select the Hash Function first, then a column name will be auto generated for you.  I recommend changing this name to one more appropriate to your function.&lt;br /&gt;Tick the columns that you want in the Hash.  These will be populated into the Rightmost grid, in the order that you select them.&lt;br /&gt;&lt;br /&gt;If you have selected columns in the &lt;i&gt;wrong&lt;/i&gt; order, then you can use the &lt;b&gt;Move Up&lt;/b&gt; and &lt;b&gt;Move Down&lt;/b&gt; buttons to change the order.&lt;br /&gt; &lt;br /&gt;New in 1.4.1 is the ability to highlight a number of rows in the middle list, and select/deselect them as a group.   Just ensure that you have the shift key pressed when you click in the checkbox at the bottom of your group selection.&lt;br /&gt;You can also sort this list (before selecting your rows), by clicking on the header row.&lt;br /&gt;Clicking on the left of the header row will highlight all the rows, to allow mass select/deselect.  Ensure that you click on the LAST row in the selection group when doing this.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Sun, 21 Oct 2012 11:54:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: ConfigOutputTab 20121021115442A</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=16</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin"&gt;Keith Martin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Download:&lt;br /&gt;The Default Download is for SQL Server 2012.  If you are using SQL 2005, 2008 or 2008R2, then please select the appropriate download from the View All Downloads link to the right.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/"&gt;http://ssismhash.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.6.&lt;br /&gt;This release corrects a bug in date time handling, where milliseconds were not being hashed.  Updating the component will NOT automatically correct this in existing packages.  You will have to tick the box Milliseconds to enable this.  This has been done to preserve backwards compatability.&lt;br /&gt;&lt;br /&gt;If you are not hashing Date Time data types with a requirement for millisecond precision, then you don&amp;#39;t need to update your component version.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Version 1.5.1 Details:&lt;br /&gt;This release improves performance significantly, and corrects a UI defect in multiple select.&lt;br /&gt;&lt;br /&gt;Version 1.5 Details:&lt;br /&gt;This release adds 4 new Hash algorithms, and corrects a defect in the multiple select capability.&lt;br /&gt;&lt;br /&gt;Version 1.4.1 Details:&lt;br /&gt;This release adds multiple select/deselect capability to the Input and Output tabs for the check box columns.&lt;br /&gt;&lt;br /&gt;Version 1.4 Details:&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes SQL 2012 support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Sun, 21 Oct 2012 11:52:47 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121021115247A</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=15</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin"&gt;Keith Martin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Download:&lt;br /&gt;The Default Download is for SQL Server 2012.  If you are using SQL 2005, 2008 or 2008R2, then please select the appropriate download from the View All Downloads link to the right.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/"&gt;http://ssismhash.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.5.1&lt;br /&gt;This release improves performance significantly, and corrects a UI defect in multiple select.&lt;br /&gt;&lt;br /&gt;Version 1.5 Details:&lt;br /&gt;This release adds 4 new Hash algorithms, and corrects a defect in the multiple select capability.&lt;br /&gt;&lt;br /&gt;Version 1.4.1 Details:&lt;br /&gt;This release adds multiple select/deselect capability to the Input and Output tabs for the check box columns.&lt;br /&gt;&lt;br /&gt;Version 1.4 Details:&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes SQL 2012 support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Thu, 24 May 2012 13:23:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120524012305P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://ssismhash.codeplex.com/documentation?version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Usage Instructions&lt;/h1&gt;The following should assist you in using this component.&lt;br /&gt;
&lt;h2&gt;Installation&lt;/h2&gt;After downloading the appropriate setup files, unzip them, and execute the Setup.exe file.&lt;br /&gt;&lt;br /&gt;If you have a previous version (1.0, 1.1, 1.2, 1.2.1, 1.3 or 1.3.1) you will get a dialog box informing you that you must uninstall the previous version.&lt;br /&gt;Do this, and then restart the installation.&lt;br /&gt;&lt;br /&gt;Once the installation has completed, you will need to start BIDS, and add the new component into the Toolbox.&lt;br /&gt;This is done as follows:
&lt;ol&gt;&lt;li&gt;Add a data flow task into a new Integration Services package&lt;/li&gt;
&lt;li&gt;Open the data flow task&lt;/li&gt;
&lt;li&gt;Display the Toolbox&lt;/li&gt;
&lt;li&gt;Right click the Data Flow Transformations within the Toolbox&lt;/li&gt;
&lt;li&gt;Select Choose Items&lt;/li&gt;
&lt;li&gt;Switch to the SSIS Data Flow Items tab&lt;/li&gt;
&lt;li&gt;Tick the check box next to Multiple Hash in the list&lt;/li&gt;
&lt;li&gt;Ok your way out of the dialog boxes&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Inputs&lt;/h2&gt;The component needs a single input.&lt;br /&gt;
&lt;h2&gt;Outputs&lt;/h2&gt;The component generates a single output.  This output will add new columns to your data flow that will be Binary data from the Hash functions.&lt;br /&gt;The following Hash functions are supported:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;th&gt; Size &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; MD5 &lt;/td&gt;&lt;td&gt; 16 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Ripe MD 160 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA1 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA256 &lt;/td&gt;&lt;td&gt; 32 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA384 &lt;/td&gt;&lt;td&gt; 48 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA512 &lt;/td&gt;&lt;td&gt; 64 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; CRC32 &lt;/td&gt;&lt;td&gt; 4 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; CRC32C &lt;/td&gt;&lt;td&gt; 4 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; FNV1a 32 &lt;/td&gt;&lt;td&gt; 4 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; FNV1a 64 &lt;/td&gt;&lt;td&gt; 8 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigInputTab&amp;referringTitle=Documentation"&gt;Input Columns Tab&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;referringTitle=Documentation"&gt;Output Columns Tab&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;To use, drop the component on the design surface.&lt;/li&gt;
&lt;li&gt;Connect it to a Data Flow Source&lt;/li&gt;
&lt;li&gt;Edit the component&lt;/li&gt;
&lt;li&gt;Select the Input Columns Tab (should already be active)&lt;/li&gt;
&lt;li&gt;Tick the columns that will be used for generation of the hash&amp;#39;s.  If planning more than one hash, then ensure that you select the columns for all hash&amp;#39;s to be generated.&lt;/li&gt;
&lt;li&gt;If you will have a large number of output columns, and will be excuting on a multi core machine, then consider enabling the Multiple Threading
&lt;ol&gt;&lt;li&gt;None will not do Multiple Threading&lt;/li&gt;
&lt;li&gt;Auto will do some basic checking, before enabling multiple threading (number of CPU&amp;#39;s, and Number of Outputs)&lt;/li&gt;
&lt;li&gt;On will enable multiple threading (regardless of the number of CPU Core&amp;#39;s etc.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Switch to the Output Columns Tab&lt;/li&gt;
&lt;li&gt;In the Output Columns list, enter a new column name, and then select the Hash function&lt;/li&gt;
&lt;li&gt;The list to the right should now be populated with the columns that you selected on the Input Columns Tab.&lt;/li&gt;
&lt;li&gt;Tick the columns that you wish to use for this Hash.&lt;/li&gt;
&lt;li&gt;Repeat 8 though 10 until finished.&lt;/li&gt;
&lt;li&gt;Add a Data Flow Destination&lt;/li&gt;
&lt;li&gt;Connect the Output from the component to the Data Flow Destination&lt;/li&gt;
&lt;li&gt;Run your SSIS component...&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Wed, 11 Apr 2012 11:56:33 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20120411115633A</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=14</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin"&gt;Keith Martin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Download:&lt;br /&gt;The Default Download is for SQL Server 2012.  If you are using SQL 2005, 2008 or 2008R2, then please select the appropriate download from the View All Downloads link to the right.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/"&gt;http://ssismhash.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.5&lt;br /&gt;This release adds 4 new Hash algorithms, and corrects a defect in the multiple select capability.&lt;br /&gt;&lt;br /&gt;Version 1.4.1 Details:&lt;br /&gt;This release adds multiple select/deselect capability to the Input and Output tabs for the check box columns.&lt;br /&gt;&lt;br /&gt;Version 1.4 Details:&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes SQL 2012 support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Wed, 11 Apr 2012 11:53:53 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120411115353A</guid></item><item><title>Updated Wiki: ConfigInputTab</title><link>http://ssismhash.codeplex.com/wikipage?title=ConfigInputTab&amp;version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Input Columns Tab&lt;/h1&gt;
This tab allows you to select which columns you want to be available to generate hash values.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=157000" alt="Input&amp;#32;Columns&amp;#32;Tab" title="Input&amp;#32;Columns&amp;#32;Tab" /&gt;&lt;br /&gt;&lt;br /&gt;Usage is as simple as ticking which columns you wish to use.&lt;br /&gt;&lt;br /&gt;New in 1.4.1 is the ability to highlight a number of rows in the list, and select/deselect them as a group. Just ensure that you have the shift key pressed when you click in the checkbox at the bottom of your group selection.&lt;br /&gt;You can also sort this list (before selecting your rows), by clicking on the header row.&lt;br /&gt;&lt;br /&gt;The Safe Null Handling should be ticked...&lt;br /&gt;This will ensure that the component will detect when a null and valued column next to each other swap data.&lt;br /&gt;The Enable Multiple Threading drop down has three values:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;Value&lt;/th&gt;&lt;th&gt;Meaning&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;Use a single thread to calculate all outputs&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Auto&lt;/td&gt;&lt;td&gt;If more than 2 Cores, and more than 5 outputs, assign each output to a different thread&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;On&lt;/td&gt;&lt;td&gt;Assign each output to a different thread&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Fri, 23 Mar 2012 10:07:06 GMT</pubDate><guid isPermaLink="false">Updated Wiki: ConfigInputTab 20120323100706A</guid></item><item><title>Updated Wiki: ConfigOutputTab</title><link>http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Output Columns Tab&lt;/h1&gt;
This tab allows you to:
&lt;ul&gt;&lt;li&gt;add new output columns&lt;/li&gt;
&lt;li&gt;rename existing output columns&lt;/li&gt;
&lt;li&gt;change the Hash function used on output columns&lt;/li&gt;
&lt;li&gt;select which input columns are used for a hash&lt;/li&gt;
&lt;li&gt;change the order of the input columns used for a hash&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=285221" alt="Output&amp;#32;Columns&amp;#32;Tab" title="Output&amp;#32;Columns&amp;#32;Tab" /&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;In the Output Columns grid, select the output column (or if none entered, the first row).&lt;br /&gt;Add/Change the column name&lt;br /&gt;Select the Hash Function.&lt;br /&gt;If you select the Hash Function first, then a column name will be auto generated for you.  I recommend changing this name to one more appropriate to your function.&lt;br /&gt;Tick the columns that you want in the Hash.  These will be populated into the Rightmost grid, in the order that you select them.&lt;br /&gt;&lt;br /&gt;If you have selected columns in the &lt;i&gt;wrong&lt;/i&gt; order, then you can use the &lt;b&gt;Move Up&lt;/b&gt; and &lt;b&gt;Move Down&lt;/b&gt; buttons to change the order.&lt;br /&gt; &lt;br /&gt;New in 1.4.1 is the ability to highlight a number of rows in the middle list, and select/deselect them as a group.   Just ensure that you have the shift key pressed when you click in the checkbox at the bottom of your group selection.&lt;br /&gt;You can also sort this list (before selecting your rows), by clicking on the header row.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Fri, 23 Mar 2012 10:06:17 GMT</pubDate><guid isPermaLink="false">Updated Wiki: ConfigOutputTab 20120323100617A</guid></item><item><title>Updated Wiki: ConfigOutputTab</title><link>http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Output Columns Tab&lt;/h1&gt;
This tab allows you to:
&lt;ul&gt;&lt;li&gt;add new output columns&lt;/li&gt;
&lt;li&gt;rename existing output columns&lt;/li&gt;
&lt;li&gt;change the Hash function used on output columns&lt;/li&gt;
&lt;li&gt;select which input columns are used for a hash&lt;/li&gt;
&lt;li&gt;change the order of the input columns used for a hash&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=285221" alt="Output&amp;#32;Columns&amp;#32;Tab" title="Output&amp;#32;Columns&amp;#32;Tab" /&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;In the Output Columns grid, select the output column (or if none entered, the first row).&lt;br /&gt;Add/Change the column name&lt;br /&gt;Select the Hash Function.&lt;br /&gt;If you select the Hash Function first, then a column name will be auto generated for you.  I recommend changing this name to one more appropriate to your function.&lt;br /&gt;Tick the columns that you want in the Hash.  These will be populated into the Rightmost grid, in the order that you select them.&lt;br /&gt;&lt;br /&gt;If you have selected columns in the &lt;i&gt;wrong&lt;/i&gt; order, then you can use the &lt;b&gt;Move Up&lt;/b&gt; and &lt;b&gt;Move Down&lt;/b&gt; buttons to change the order.&lt;br /&gt; &lt;br /&gt;New in 1.4.1 is the ability to highlight a number of rows in the middle list, and select/deselect them as a group.   Just ensure that you have the shift key pressed when you click in the checkbox at the bottom of your group selection.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Fri, 23 Mar 2012 10:05:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: ConfigOutputTab 20120323100507A</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=13</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin"&gt;Keith Martin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Download:&lt;br /&gt;The Default Download is for SQL Server 2012.  If you are using SQL 2005, 2008 or 2008R2, then please select the appropriate download from the View All Downloads link to the right.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/"&gt;http://ssismhash.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.4.1&lt;br /&gt;This release adds multiple select/deselect capability to the Input and Output tabs for the check box columns.&lt;br /&gt;&lt;br /&gt;Version 1.4 Details:&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes SQL 2012 support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Fri, 23 Mar 2012 10:03:00 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120323100300A</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=12</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin"&gt;Keith Martin&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Download:&lt;br /&gt;The Default Download is for SQL Server 2012.  If you are using SQL 2005, 2008 or 2008R2, then please select the appropriate download from the View All Downloads link to the right.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/"&gt;http://ssismhash.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.4&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes Denali support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Thu, 22 Mar 2012 23:15:45 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120322111545P</guid></item><item><title>Updated Wiki: ConfigOutputTab</title><link>http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Output Columns Tab&lt;/h1&gt;
This tab allows you to:
&lt;ul&gt;&lt;li&gt;add new output columns&lt;/li&gt;
&lt;li&gt;rename existing output columns&lt;/li&gt;
&lt;li&gt;change the Hash function used on output columns&lt;/li&gt;
&lt;li&gt;select which input columns are used for a hash&lt;/li&gt;
&lt;li&gt;change the order of the input columns used for a hash&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=285221" alt="Output&amp;#32;Columns&amp;#32;Tab" title="Output&amp;#32;Columns&amp;#32;Tab" /&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;In the Output Columns grid, select the output column (or if none entered, the first row).&lt;br /&gt;Add/Change the column name&lt;br /&gt;Select the Hash Function.&lt;br /&gt;If you select the Hash Function first, then a column name will be auto generated for you.  I recommend changing this name to one more appropriate to your function.&lt;br /&gt;Tick the columns that you want in the Hash.  These will be populated into the Rightmost grid, in the order that you select them.&lt;br /&gt;&lt;br /&gt;If you have selected columns in the &lt;i&gt;wrong&lt;/i&gt; order, then you can use the &lt;b&gt;Move Up&lt;/b&gt; and &lt;b&gt;Move Down&lt;/b&gt; buttons to change the order.&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Sun, 25 Sep 2011 12:25:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: ConfigOutputTab 20110925122548P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://ssismhash.codeplex.com/documentation?version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Usage Instructions&lt;/h1&gt;The following should assist you in using this component.&lt;br /&gt;
&lt;h2&gt;Installation&lt;/h2&gt;After downloading the appropriate setup files, unzip them, and execute the Setup.exe file.&lt;br /&gt;&lt;br /&gt;If you have a previous version (1.0, 1.1, 1.2, 1.2.1, 1.3 or 1.3.1) you will get a dialog box informing you that you must uninstall the previous version.&lt;br /&gt;Do this, and then restart the installation.&lt;br /&gt;&lt;br /&gt;Once the installation has completed, you will need to start BIDS, and add the new component into the Toolbox.&lt;br /&gt;This is done as follows:
&lt;ol&gt;&lt;li&gt;Add a data flow task into a new Integration Services package&lt;/li&gt;
&lt;li&gt;Open the data flow task&lt;/li&gt;
&lt;li&gt;Display the Toolbox&lt;/li&gt;
&lt;li&gt;Right click the Data Flow Transformations within the Toolbox&lt;/li&gt;
&lt;li&gt;Select Choose Items&lt;/li&gt;
&lt;li&gt;Switch to the SSIS Data Flow Items tab&lt;/li&gt;
&lt;li&gt;Tick the check box next to Multiple Hash in the list&lt;/li&gt;
&lt;li&gt;Ok your way out of the dialog boxes&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Inputs&lt;/h2&gt;The component needs a single input.&lt;br /&gt;
&lt;h2&gt;Outputs&lt;/h2&gt;The component generates a single output.  This output will add new columns to your data flow that will be Binary data from the Hash functions.&lt;br /&gt;The following Hash functions are supported:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;th&gt; Size &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; MD5 &lt;/td&gt;&lt;td&gt; 16 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Ripe MD 160 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA1 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA256 &lt;/td&gt;&lt;td&gt; 32 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA384 &lt;/td&gt;&lt;td&gt; 48 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA512 &lt;/td&gt;&lt;td&gt; 64 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigInputTab&amp;referringTitle=Documentation"&gt;Input Columns Tab&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;referringTitle=Documentation"&gt;Output Columns Tab&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;To use, drop the component on the design surface.&lt;/li&gt;
&lt;li&gt;Connect it to a Data Flow Source&lt;/li&gt;
&lt;li&gt;Edit the component&lt;/li&gt;
&lt;li&gt;Select the Input Columns Tab (should already be active)&lt;/li&gt;
&lt;li&gt;Tick the columns that will be used for generation of the hash&amp;#39;s.  If planning more than one hash, then ensure that you select the columns for all hash&amp;#39;s to be generated.&lt;/li&gt;
&lt;li&gt;If you will have a large number of output columns, and will be excuting on a multi core machine, then consider enabling the Multiple Threading
&lt;ol&gt;&lt;li&gt;None will not do Multiple Threading&lt;/li&gt;
&lt;li&gt;Auto will do some basic checking, before enabling multiple threading (number of CPU&amp;#39;s, and Number of Outputs)&lt;/li&gt;
&lt;li&gt;On will enable multiple threading (regardless of the number of CPU Core&amp;#39;s etc.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Switch to the Output Columns Tab&lt;/li&gt;
&lt;li&gt;In the Output Columns list, enter a new column name, and then select the Hash function&lt;/li&gt;
&lt;li&gt;The list to the right should now be populated with the columns that you selected on the Input Columns Tab.&lt;/li&gt;
&lt;li&gt;Tick the columns that you wish to use for this Hash.&lt;/li&gt;
&lt;li&gt;Repeat 8 though 10 until finished.&lt;/li&gt;
&lt;li&gt;Add a Data Flow Destination&lt;/li&gt;
&lt;li&gt;Connect the Output from the component to the Data Flow Destination&lt;/li&gt;
&lt;li&gt;Run your SSIS component...&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Sun, 25 Sep 2011 12:22:09 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110925122209P</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=11</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin" class="externalLink"&gt;Keith Martin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/" class="externalLink"&gt;http://ssismhash.codeplex.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx" class="externalLink"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx" class="externalLink"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.4&lt;br /&gt;This release improves the UI for selection of columns in the Hash, and the ordering of these columns.&lt;br /&gt;It also includes Denali support.&lt;br /&gt;&lt;br /&gt;Version 1.3.1 Details:&lt;br /&gt;Corrects an issue with Multiple Threading and Thread Safe not being enabled.&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Sun, 25 Sep 2011 12:21:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110925122124P</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=10</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin" class="externalLink"&gt;Keith Martin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/" class="externalLink"&gt;http://ssismhash.codeplex.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx" class="externalLink"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx" class="externalLink"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.3.1&lt;br /&gt;(This is release corrects and issue with Multiple Threading and Thread Safe not being enabled).&lt;br /&gt;&lt;br /&gt;Version 1.3 Details:&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Fri, 20 May 2011 12:31:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110520123124P</guid></item><item><title>Updated Wiki: Home</title><link>http://ssismhash.codeplex.com/wikipage?version=9</link><description>&lt;div class="wikidoc"&gt;Creator: &lt;a href="http://www.codeplex.com/site/users/view/kmartin" class="externalLink"&gt;Keith Martin&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Description: SSIS Multiple Hash makes it possible to generate many Hash values from each input row.  Hash&amp;#39;s supported include MD5 and SHA1.&lt;br /&gt;&lt;br /&gt;Design Page Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=ssismhash&amp;DownloadId=80041" alt="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" title="Multiple&amp;#32;Hash&amp;#32;Data&amp;#32;Flow" /&gt;&lt;br /&gt;&lt;br /&gt;Meta Data from Example&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=ssismhash&amp;DownloadId=80043" alt="Multiple&amp;#32;Hash&amp;#32;Metadata" title="Multiple&amp;#32;Hash&amp;#32;Metadata" /&gt;&lt;br /&gt;&lt;br /&gt;Main Project Site: &lt;a href="http://ssismhash.codeplex.com/" class="externalLink"&gt;http://ssismhash.codeplex.com/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Source Download: &lt;a href="http://ssismhash.codeplex.com/SourceControl/ListDownloadableCommits.aspx" class="externalLink"&gt;SSIS Multiple Hash on Codeplex, Source Code Tab&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Binary Download: &lt;a href="http://ssismhash.codeplex.com/Release/ProjectReleases.aspx" class="externalLink"&gt;SSIS Multiple Hash on Codeplex, Releases Tab&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Instructions: &lt;a href="http://ssismhash.codeplex.com/documentation?referringTitle=Home"&gt;SSIS Multiple Hash Component Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This component has now been updated to version 1.3&lt;br /&gt;This release adds the ability to upgrade an SQL 2005 package to SQL 2008.&lt;br /&gt;This release adds the ability to detect the following scenarios:&lt;br /&gt;&lt;br /&gt;Version 1.2.1 or lessor&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 without Safe Ticked (This is the default action on an update)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Version 1.3 with Safe Ticked (You have to enable this in your existing packages)&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Col 1 &lt;/th&gt;&lt;th&gt; Col 2 &lt;/th&gt;&lt;th&gt; Col 3 &lt;/th&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x123564 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; 0x124563 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; NULL &lt;/td&gt;&lt;td&gt; Text &lt;/td&gt;&lt;td&gt; Text 2 &lt;/td&gt;&lt;td&gt; 0x823456 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that all the hashes are different in this case, and they are different from those generated by the older versions.&lt;br /&gt;This is because columns that are variable length will have their length appended to a string at the end of the hash data, and all columns will have their NULL status added to the same string.  That string is then added to the data read in, and hashed.&lt;br /&gt;&lt;br /&gt;Review(s):&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Wed, 13 Oct 2010 12:59:03 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20101013125903P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://ssismhash.codeplex.com/documentation?version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Usage Instructions&lt;/h1&gt;The following should assist you in using this component.&lt;br /&gt;
&lt;h2&gt;Installation&lt;/h2&gt;After downloading the appropriate setup files, unzip them, and execute the Setup.exe file.&lt;br /&gt;&lt;br /&gt;If you have a previous version (1.0, 1.1, 1.2, or 1.2.1) you will get a dialog box informing you that you must uninstall the previous version.&lt;br /&gt;Do this, and then restart the installation.&lt;br /&gt;&lt;br /&gt;Once the installation has completed, you will need to start BIDS, and add the new component into the Toolbox.&lt;br /&gt;This is done as follows:
&lt;ol&gt;&lt;li&gt;Add a data flow task into a new Integration Services package&lt;/li&gt;
&lt;li&gt;Open the data flow task&lt;/li&gt;
&lt;li&gt;Display the Toolbox&lt;/li&gt;
&lt;li&gt;Right click the Data Flow Transformations within the Toolbox&lt;/li&gt;
&lt;li&gt;Select Choose Items&lt;/li&gt;
&lt;li&gt;Switch to the SSIS Data Flow Items tab&lt;/li&gt;
&lt;li&gt;Tick the check box next to Multiple Hash in the list&lt;/li&gt;
&lt;li&gt;Ok your way out of the dialog boxes&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Inputs&lt;/h2&gt;The component needs a single input.&lt;br /&gt;
&lt;h2&gt;Outputs&lt;/h2&gt;The component generates a single output.  This output will add new columns to your data flow that will be Binary data from the Hash functions.&lt;br /&gt;The following Hash functions are supported:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt; Hash &lt;/th&gt;&lt;th&gt; Size &lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; MD5 &lt;/td&gt;&lt;td&gt; 16 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; Ripe MD 160 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA1 &lt;/td&gt;&lt;td&gt; 20 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA256 &lt;/td&gt;&lt;td&gt; 32 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA384 &lt;/td&gt;&lt;td&gt; 48 &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; SHA512 &lt;/td&gt;&lt;td&gt; 64 &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigInputTab&amp;referringTitle=Documentation"&gt;Input Columns Tab&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ssismhash.codeplex.com/wikipage?title=ConfigOutputTab&amp;referringTitle=Documentation"&gt;Output Columns Tab&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;To use, drop the component on the design surface.&lt;/li&gt;
&lt;li&gt;Connect it to a Data Flow Source&lt;/li&gt;
&lt;li&gt;Edit the component&lt;/li&gt;
&lt;li&gt;Select the Input Columns Tab (should already be active)&lt;/li&gt;
&lt;li&gt;Tick the columns that will be used for generation of the hash&amp;#39;s.  If planning more than one hash, then ensure that you select the columns for all hash&amp;#39;s to be generated.&lt;/li&gt;
&lt;li&gt;If you will have a large number of output columns, and will be excuting on a multi core machine, then consider enabling the Multiple Threading
&lt;ol&gt;&lt;li&gt;None will not do Multiple Threading&lt;/li&gt;
&lt;li&gt;Auto will do some basic checking, before enabling multiple threading (number of CPU&amp;#39;s, and Number of Outputs)&lt;/li&gt;
&lt;li&gt;On will enable multiple threading (regardless of the number of CPU Core&amp;#39;s etc.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Switch to the Output Columns Tab&lt;/li&gt;
&lt;li&gt;In the Output Columns list, enter a new column name, and then select the Hash function&lt;/li&gt;
&lt;li&gt;The list to the right should now be populated with the columns that you selected on the Input Columns Tab.&lt;/li&gt;
&lt;li&gt;Tick the columns that you wish to use for this Hash.&lt;/li&gt;
&lt;li&gt;Repeat 8 though 10 until finished.&lt;/li&gt;
&lt;li&gt;Add a Data Flow Destination&lt;/li&gt;
&lt;li&gt;Connect the Output from the component to the Data Flow Destination&lt;/li&gt;
&lt;li&gt;Run your SSIS component...&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>kmartin</author><pubDate>Wed, 13 Oct 2010 12:48:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20101013124823P</guid></item></channel></rss>