<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Eric Johnson</title><link>http://sqlblog.com/blogs/eric_johnson/default.aspx</link><description>My Thoughts on SQL Server and Database Related Technologies.</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>The Trouble with SSIS Sorting</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2010/02/03/the-trouble-with-ssis-sorting.aspx</link><pubDate>Wed, 03 Feb 2010 14:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:20953</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/20953.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=20953</wfw:commentRss><description>Many SSIS transformations, such as the Pivot and the Data Profiling Tasks, require that the data being fed into them be sorted. Without first sorting, some transformations will throw an error and not run, while others will run but the results will not...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2010/02/03/the-trouble-with-ssis-sorting.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=20953" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Sort+Transformation/default.aspx">Sort Transformation</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Understanding the SSIS Package Protection Level</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2010/01/12/understanding-the-ssis-package-protection-level.aspx</link><pubDate>Tue, 12 Jan 2010 17:46:05 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:20950</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/20950.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=20950</wfw:commentRss><description>One property of all SSIS packages that you must understand is the ProtectionLevel. This property tells SSIS how to handle sensitive information stored within your packages. Most commonly this is a password stored in a connection string. Why is this information...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2010/01/12/understanding-the-ssis-package-protection-level.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=20950" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>Troubleshooting a Failed Maintenance Plan</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/12/23/troubleshooting-a-failed-maintenance-plan.aspx</link><pubDate>Wed, 23 Dec 2009 20:20:40 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:20207</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/20207.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=20207</wfw:commentRss><description>I recently ran into an odd little problem with a Maintenance Plan that I wanted to share. I had a plan that was running the Check Database Integrity Task that suddenly started failing. Nothing about the databases had changed and if you ran a manually...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/12/23/troubleshooting-a-failed-maintenance-plan.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=20207" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Maintenance+Plans/default.aspx">Maintenance Plans</category></item><item><title>Check Out My SSIS Screen Casts</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/12/14/check-out-my-ssis-screen-casts.aspx</link><pubDate>Mon, 14 Dec 2009 22:16:10 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:19963</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/19963.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=19963</wfw:commentRss><description>Two I did for TechTarget: Using the Pivot Transformation in SQL Server Integration Services: http://searchsqlserver.techtarget.com/video/0,297151,sid87_gci1374920,00.html Using package configurations in SQL Server Integration Services: http://searchsqlserver.techtarget.com/video/0,297151,sid87_gci1369995,00.html...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/12/14/check-out-my-ssis-screen-casts.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=19963" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Training/default.aspx">Training</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/ScreenCast/default.aspx">ScreenCast</category></item><item><title>SSIS Package Builds</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/12/08/ssis-package-builds.aspx</link><pubDate>Tue, 08 Dec 2009 20:29:18 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:19631</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/19631.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=19631</wfw:commentRss><description>So you have written an SSIS package and now its time to package it up and send it off to your QA department. Excellent; you need to use the build function in Business Intelligence Development Studio. On the surface this is pretty simply but there are...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/12/08/ssis-package-builds.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=19631" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>SSIS 2008: Looping Through Rows in a Table</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/11/13/ssis-2008-looping-through-rows-in-a-table.aspx</link><pubDate>Fri, 13 Nov 2009 22:09:06 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:18843</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>4</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/18843.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=18843</wfw:commentRss><description>Inevitably when writing code, you have a need to write a loop in order to iterate over multiple objects. When writing code against a SQL Server, as we usually are doing in SSIS Packages, you often need to iterate over all the rows in a table. This can...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/11/13/ssis-2008-looping-through-rows-in-a-table.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=18843" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>SQL Server 2008’s New Import and Export Wizard</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/10/19/sql-server-2008-s-new-import-and-export-wizard.aspx</link><pubDate>Mon, 19 Oct 2009 15:58:06 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:17943</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>2</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/17943.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=17943</wfw:commentRss><description>I have written a lot lately about SSIS package development, and that doesn’t apply to everyone that works with SQL Server 2008. So you might be asking, what’s does SSIS have to offer me, the production support DBA? Well, I am glad you asked. In SQL Server...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/10/19/sql-server-2008-s-new-import-and-export-wizard.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=17943" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>Working with SSIS Expressions</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/10/12/working-with-ssis-expressions.aspx</link><pubDate>Mon, 12 Oct 2009 16:47:38 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:17640</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/17640.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=17640</wfw:commentRss><description>In SQL Server Integration Services (SSIS) Packages, expressions are everywhere. You may have worked with Expressions in some of the transformation tasks, such as the Derive Column Transformation, but did you know they can also be used to set the properties...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/10/12/working-with-ssis-expressions.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=17640" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>Managing Lookup Cache in SQL Server 2008</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/09/29/managing-lookup-cache-in-sql-server-2008.aspx</link><pubDate>Tue, 29 Sep 2009 19:59:30 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:17065</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>6</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/17065.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=17065</wfw:commentRss><description>The Lookup transformation in SSIS has changed a lot in SQL Server 2008. One of the best new features is the ability to pre-build your cache which gives you a lot of control over what is cached and how the cached data is managed. The basic lookup offers...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/09/29/managing-lookup-cache-in-sql-server-2008.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=17065" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>Using SSIS Package Configurations</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/09/21/using-ssis-package-configurations.aspx</link><pubDate>Mon, 21 Sep 2009 15:55:37 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:16915</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/16915.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=16915</wfw:commentRss><description>SQL Server Integration Services (SSIS) is a very powerful tool for creating ETL Packages. Part of what makes it so powerful is its ability to use package configurations. Package configurations allow you to externally store information that the package...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/09/21/using-ssis-package-configurations.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=16915" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>SSIS 2008: Data Profiling Task</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/09/11/ssis-2008-data-profiling-task.aspx</link><pubDate>Fri, 11 Sep 2009 21:30:34 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:16727</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>3</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/16727.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=16727</wfw:commentRss><description>SQL Server 2008 Integration Services shipped with the wonderful new Data Profiling Task. This task, much as the name implies, will profile the data in a given table and return a ton of useful information. The task gathers statistics for candidate keys,...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/09/11/ssis-2008-data-profiling-task.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=16727" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Data+Profiling+Task/default.aspx">Data Profiling Task</category></item><item><title>File and Filegroup Space Details</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/08/07/file-and-filegroup-space-details.aspx</link><pubDate>Fri, 07 Aug 2009 16:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:15877</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/15877.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=15877</wfw:commentRss><description>Here is a little SQL Script I wrote that gives you file and filegroup size details for all databases on SQL Server 2005 or 2008. This returns all the vital information I am looking for when I look at database sizes and growth such as file size, space...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/08/07/file-and-filegroup-space-details.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=15877" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Files/default.aspx">Files</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Space/default.aspx">Space</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Script/default.aspx">Script</category></item><item><title>SSIS 2008 and the New Lookup</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/07/01/ssis-2008-and-the-new-lookup.aspx</link><pubDate>Wed, 01 Jul 2009 21:33:44 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:15046</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/15046.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=15046</wfw:commentRss><description>SSIS is a pretty useful tool for designing ETL processes. One of the transformations I was disappointed with in 2005 was the lookup. I found it a little better than the lookup functionality in DTS, but not too much better. Well, Microsoft must have read...(&lt;a href="http://sqlblog.com/blogs/eric_johnson/archive/2009/07/01/ssis-2008-and-the-new-lookup.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=15046" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>SSIS Connection Wizard</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/06/09/ssis-connection-wizard.aspx</link><pubDate>Tue, 09 Jun 2009 16:40:31 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:14575</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>0</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/14575.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=14575</wfw:commentRss><description>&lt;p&gt;Just found a little something new in SSIS 2008, The Integration Services Connections Project Wizard. This thing starts up when you first begin a new SSIS project. The whole point is to walk you though your initial connection configurations. Once the connections are set up, it even asks you if each is a source, destination, or both and then it creates your first Data Flow task complete with the correct sources and destinations. This probably isn't all that useful to someone that has spent any measurable amount of time with SSIS, but for new comers I think its great. I remember the first time I opened SSIS, it took me a minute to figure out how to get a connection , a source, and a destination all set up. Granted I tend not to read documentation, so I am probably a special case. &lt;/p&gt;  &lt;p&gt;In any event, if this pops up in your face the next time you start a project. Have a look, it’s a neat little addition.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/eric_johnson/image_48733024.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/eric_johnson/image_thumb_1E43823C.png" width="509" height="471" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=SSIS Connection Wizard&amp;amp;body=Seen on SQLblog.com: %0A%0A%09SSIS Connection Wizard%0A%0Ahttp://sqlblog.com/blogs/eric_johnson/archive/2009/06/09/ssis-connection-wizard.aspx" target="_blank" title = "Email SSIS Connection Wizard"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/06/09/ssis-connection-wizard.aspx&amp;amp;title=SSIS+Connection+Wizard" target="_blank" title = "Submit SSIS Connection Wizard to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/06/09/ssis-connection-wizard.aspx&amp;amp;phase=2" target="_blank" title = "Submit SSIS Connection Wizard to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/06/09/ssis-connection-wizard.aspx&amp;amp;title=SSIS+Connection+Wizard" target="_blank" title = "Submit SSIS Connection Wizard to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/06/09/ssis-connection-wizard.aspx&amp;amp;title=SSIS+Connection+Wizard" target="_blank" title = "Submit SSIS Connection Wizard to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/eric_johnson/archive/2009/06/09/ssis-connection-wizard.aspx&amp;amp;title=SSIS+Connection+Wizard&amp;amp;;top=1" target="_blank" title = "Add SSIS Connection Wizard to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=14575" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>Slowly Changing Dimensions - Duplicate Data Issues</title><link>http://sqlblog.com/blogs/eric_johnson/archive/2009/05/05/slowly-changing-dimensions-duplicate-data-issues.aspx</link><pubDate>Tue, 05 May 2009 21:14:23 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:13801</guid><dc:creator>ejohnson2010</dc:creator><slash:comments>1</slash:comments><comments>http://sqlblog.com/blogs/eric_johnson/comments/13801.aspx</comments><wfw:commentRss>http://sqlblog.com/blogs/eric_johnson/commentrss.aspx?PostID=13801</wfw:commentRss><description>&lt;p&gt;The Slowly Changing Dimension (SCD) transformations are pretty handy in SSIS packages. They let you compare a new set of data to an existing table and insert or update as needed. Alternatively, you can have them insert new rows and mark old rows as &amp;quot;Expired&amp;quot; instead of updating rows when a change occurs. This is great if you want to maintain history. Now these are meant for dimensions in a data warehouse, but you can use them against any table in your database. The reason for this post is to look at an issue that can occur with SCDs when you have duplicate data in your incoming data set. &lt;/p&gt;  &lt;p&gt;When an SCD analyzes a set of data it looks at each row and compares it to the destination. It decides whether the row will be inserted or updated (or inserted with the old row being marked inactive). Notice I said this comparison is with the incoming data and the destination. The SCD does check for duplicates that may exist in the incoming data. So if you have duplicates, that also happen to be new rows when compared to the destination, all the duplicate rows get &amp;quot;flagged&amp;quot; for insertion. You can probably guess what happens next. The first row gets inserted but the second and subsequent duplicates cause a Primary Key violation when they attempt to insert the now duplicate record. &lt;/p&gt;  &lt;p&gt;Now this might seem like a glitch to some, but this functionality is &amp;quot;by design &amp;quot;. The button line is that the data being inserted should be de-duplicated prior to being inserted into the destination. In a perfect world, the data would come from a source where it lived in a normalized, and therefore de-duplicated, state. If you don't have the luxury of living in a perfect world, you can build a manual data de-dup process or use a Sort transformation. One of the options of the Sort transformation is to &amp;quot;Remove Rows with Duplicate Sort Values&amp;quot;. Just drop one of these in, check the box, and you have magically de-dup your values.&lt;/p&gt;
&lt;BR&gt;&lt;div class = "shareblock"&gt;&lt;span class = "shareblockTitle"&gt;Share this post:&lt;/span&gt;&lt;span class = "shareblockLink"&gt; &lt;a href = "mailto:?subject=Slowly Changing Dimensions - Duplicate Data Issues&amp;amp;body=Seen on SQLblog.com: %0A%0A%09Slowly Changing Dimensions - Duplicate Data Issues%0A%0Ahttp://sqlblog.com/blogs/eric_johnson/archive/2009/05/05/slowly-changing-dimensions-duplicate-data-issues.aspx" target="_blank" title = "Email Slowly Changing Dimensions - Duplicate Data Issues"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/05/05/slowly-changing-dimensions-duplicate-data-issues.aspx&amp;amp;title=Slowly+Changing+Dimensions+-+Duplicate+Data+Issues" target="_blank" title = "Submit Slowly Changing Dimensions - Duplicate Data Issues to del.icio.us"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/05/05/slowly-changing-dimensions-duplicate-data-issues.aspx&amp;amp;phase=2" target="_blank" title = "Submit Slowly Changing Dimensions - Duplicate Data Issues to digg.com"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/05/05/slowly-changing-dimensions-duplicate-data-issues.aspx&amp;amp;title=Slowly+Changing+Dimensions+-+Duplicate+Data+Issues" target="_blank" title = "Submit Slowly Changing Dimensions - Duplicate Data Issues to reddit.com"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://sqlblog.com/blogs/eric_johnson/archive/2009/05/05/slowly-changing-dimensions-duplicate-data-issues.aspx&amp;amp;title=Slowly+Changing+Dimensions+-+Duplicate+Data+Issues" target="_blank" title = "Submit Slowly Changing Dimensions - Duplicate Data Issues to DotNetKicks"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://sqlblog.com/blogs/eric_johnson/archive/2009/05/05/slowly-changing-dimensions-duplicate-data-issues.aspx&amp;amp;title=Slowly+Changing+Dimensions+-+Duplicate+Data+Issues&amp;amp;;top=1" target="_blank" title = "Add Slowly Changing Dimensions - Duplicate Data Issues to Live Bookmarks"&gt;live it!&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://info.sqlblog.com/a.aspx?ZoneID=0&amp;BannerID=12&amp;AdvertiserID=1&amp;CampaignID=12&amp;Task=Get&amp;Mode=TEXT&amp;SiteID=1&amp;RandomNumber=463323" width="1" height="1" border="0"&gt;&lt;img src="http://sqlblog.com/aggbug.aspx?PostID=13801" width="1" height="1"&gt;</description><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/SSIS/default.aspx">SSIS</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Slowly+Changing+Dimension/default.aspx">Slowly Changing Dimension</category><category domain="http://sqlblog.com/blogs/eric_johnson/archive/tags/Sort+Transformation/default.aspx">Sort Transformation</category></item></channel></rss>