<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.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>SSIS Team Blog</title><link>http://blogs.msdn.com/mattm/default.aspx</link><description>Helpful information and examples on how to use SQL Server Integration Services.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Speaking for the Vancouver BI PASS Chapter</title><link>http://blogs.msdn.com/mattm/archive/2009/06/29/speaking-for-the-vancouver-bi-pass-chapter.aspx</link><pubDate>Mon, 29 Jun 2009 17:09:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9808754</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9808754.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9808754</wfw:commentRss><description>&lt;p&gt;I’ll be presenting for the &lt;a href="http://vancouverbi.sqlpass.org/"&gt;Vancouver BI PASS Chapter&lt;/a&gt; next Friday, July 10th, at the Microsoft Canada offices. I really enjoyed meeting the &lt;a href="http://blogs.msdn.com/mattm/archive/2009/06/02/speaking-at-the-pnw-ssug.aspx"&gt;Pacific Northwest SQL Server User Group&lt;/a&gt; a couple of weeks ago, and I’m looking forward to sharing SSIS with my fellow Canadians in Vancouver. I’ll be going over some &lt;a href="http://blogs.msdn.com/mattm/archive/2009/05/20/avoiding-common-pitfalls-in-ssis.aspx"&gt;common SSIS pitfalls&lt;/a&gt;, and it seems like I’ll have plenty of time to go over any other topics that come up (perhaps there will be interest in &lt;a href="http://blogs.msdn.com/mattm/archive/2009/05/02/samples-for-the-cdc-merge-demo.aspx"&gt;CDC &amp;amp; Merge&lt;/a&gt;?)&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Friday, July 10&lt;sup&gt;th&lt;/sup&gt; 2009&amp;#160; &lt;br /&gt;8:30 - 11:30 AM&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Microsoft Canada&lt;/strong&gt;     &lt;br /&gt;1111 W. Georgia, Suite 1100 (11th floor)&amp;#160; &lt;br /&gt;Vancouver, British Columbia&amp;#160; &lt;br /&gt;V6E 4M3 &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.bing.com/maps/default.aspx?v=2&amp;amp;FORM=LMLTCC&amp;amp;cp=49.285993~-123.12349&amp;amp;style=r&amp;amp;lvl=14&amp;amp;tilt=-90&amp;amp;dir=0&amp;amp;alt=-1000&amp;amp;phx=0&amp;amp;phy=0&amp;amp;phscl=1&amp;amp;where1=1111%20W.%20Georgia%2C%20Vancouver%2C%20British%20Columbia%2C%20Canada%2C%20%20V6E%204M3&amp;amp;encType=1"&gt;&lt;img height="46" alt="" src="http://vancouverbi.sqlpass.org/Portals/64/LiveSearchMaps.png" width="130" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9808754" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Conferences/default.aspx">Conferences</category></item><item><title>Scripts and assembly caching in 2005</title><link>http://blogs.msdn.com/mattm/archive/2009/06/17/scripts-and-assembly-caching-in-2005.aspx</link><pubDate>Wed, 17 Jun 2009 17:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9769896</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9769896.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9769896</wfw:commentRss><description>&lt;p&gt;A recent discussion with MVP &lt;a href="http://sqlblog.com/blogs/andy_leonard/default.aspx"&gt;Andy Leonard&lt;/a&gt; about a new property which showed up on the Script Task in SQL Server 2005 SP3 reminded me that I’ve been meaning to blog about how the script task and script component cache their precompiled code at runtime. This behavior has changed in every SP since 2005 RTM, and while there are &lt;a href="http://support.microsoft.com/kb/928323"&gt;a couple&lt;/a&gt; of &lt;a href="http://support.microsoft.com/kb/945893/"&gt;KB articles&lt;/a&gt; that describe the issues that prompted the changes, I haven’t seen anyone document the behavior itself. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The behavior in SQL Server 2008 is different from 2005 because of the switch from VSA to VSTA. 2008 does not have any of the problems or limitations listed below. &lt;/p&gt;  &lt;h3&gt;Script Assemblies&lt;/h3&gt;  &lt;p&gt;First a bit of background information on how the script task and script component work. I think the &lt;a href="http://msdn.microsoft.com/en-us/library/ms141752(SQL.90).aspx"&gt;BOL entry for the script task&lt;/a&gt; does a good job of explaining the compilation behavior:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;VSA scripts must be compiled before the package runs. The Script task includes the option to precompile script into binary code when the package is saved. When script is precompiled, the language engine is not loaded at run time and the package runs more quickly; however, compiled binary files consume significant disk space. If you do not use the precompile option, the script is compiled at run time, which slows package execution but consumes less disk space. If storing large packages is not a problem, you should precompile your VSA scripts. Also, only precompiled script can be run in a 64-bit environment. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Whether you’re using the &lt;strong&gt;PreCompile&lt;/strong&gt; option or not, the script will eventually be compiled into a .NET assembly. Loading the assembly takes time, uses memory, and requires a separate &lt;a href="http://msdn.microsoft.com/en-us/library/system.appdomain.aspx"&gt;AppDomain&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;h3&gt;2005 RTM&lt;/h3&gt;  &lt;p&gt;In the initial 2005 release, SSIS did not cache these Script Assemblies. This meant that if you were executing a script task inside of a loop, a new AppDomain would be created for each iteration, and the assembly is reloaded. This wasn’t good for performance, and because we can’t unload/destroy an AppDomain until the process finishes, could result in memory issues. &lt;/p&gt;  &lt;h3&gt;2005 SP1&lt;/h3&gt;  &lt;p&gt;Script assembly caching was introduced in SP1 to address the performance and memory issues. This functionality made sure that the script assembly was only loaded once, and then reused on subsequent executions. However, each script was associated with a GUID… if you copy/paste the .DTSX file, the GUID for the script task or script component stays the same (even if you later go in and modify the script code). This led to unexpected behavior – if the script code was completely different, but came from a copy/pasted script task, you’d end up reusing one of the script assemblies for both tasks. The &lt;a href="http://support.microsoft.com/kb/928323"&gt;related KB article&lt;/a&gt; describes the problem in more detail.&lt;/p&gt;  &lt;h3&gt;2005 SP2&lt;/h3&gt;  &lt;p&gt;This behavior was fixed in SP2 by changing the GUID every time the script is modified. This meant that if the script code was the same, and the name of the script task or component matched, the script assembly would only be loaded once.&lt;/p&gt;  &lt;h3&gt;2005 SP3&lt;/h3&gt;  &lt;p&gt;There was one remaining side effect of script caching that hadn’t turned up yet. This &lt;a href="http://support.microsoft.com/kb/945893/"&gt;KB article&lt;/a&gt; describes the problem you might run into, but doesn’t give much detail (other than that it’s related to caching). &lt;/p&gt;  &lt;p&gt;The issue was that if the same script is executed in parallel (multiple execute package tasks running the same child package in process), they might share the same Dts runtime object (which has collections for variables, and connection managers). So if a script in the first instance sets variable Foo to “A”, and the second instance sets it to “B”, the first instance would end up with a value of “B” as well. &lt;/p&gt;  &lt;p&gt;You can see why this would be a problem (and extremely confusing).&lt;/p&gt;  &lt;p&gt;Unfortunately this problem isn’t easily fixed without entirely disabling script caching. Because we don’t want to go back to the RTM behavior (no caching at all), we introduced a new property to the Script Task / Component to control caching - &lt;strong&gt;OptimizeScriptExecution&lt;/strong&gt;. If you’re running a child package with scripts multiple times in parallel, be sure to set this value to False, which disables the cache and prevents the scripts from sharing a runtime object. &lt;/p&gt;  &lt;p&gt;I hope that helps!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9769896" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Script+Task/default.aspx">Script Task</category></item><item><title>Speaking at the PNW SSUG</title><link>http://blogs.msdn.com/mattm/archive/2009/06/02/speaking-at-the-pnw-ssug.aspx</link><pubDate>Tue, 02 Jun 2009 15:41:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9685731</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9685731.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9685731</wfw:commentRss><description>&lt;p&gt;I’ll be speaking at the &lt;a href="http://pugetsound.sqlpass.org/"&gt;Pacific Northwest SQL Server User Group&lt;/a&gt; meeting next Wednesday, June 10th. I’ll be giving an updated version of the &lt;a href="http://blogs.msdn.com/mattm/archive/2009/05/20/avoiding-common-pitfalls-in-ssis.aspx"&gt;Avoiding Common Pitfalls in SSIS&lt;/a&gt; talk I gave at TechEd a couple of weeks ago. It will be my first time attending a user group meeting, and I’m really looking forward to meeting some more SQL people from the area. &lt;/p&gt;  &lt;p&gt;See you there!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9685731" width="1" height="1"&gt;</description></item><item><title>More tutorial videos on Jumpstart TV</title><link>http://blogs.msdn.com/mattm/archive/2009/05/26/more-tutorial-videos-on-jumpstart-tv.aspx</link><pubDate>Tue, 26 May 2009 16:24:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9641620</guid><dc:creator>mmasson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9641620.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9641620</wfw:commentRss><description>&lt;p&gt;A while ago I &lt;a href="http://blogs.msdn.com/mattm/archive/2007/06/12/ssis-tutorials-on-jumpstarttv.aspx"&gt;posted&lt;/a&gt; about the great SSIS tutorials available on &lt;a href="http://www.jumpstarttv.com/"&gt;Jumpstart TV&lt;/a&gt;, and it’s been one of my most read blog posts so far. In the two years or so since I originally posted it, they’ve been busy adding &lt;a href="http://www.jumpstarttv.com/Search.aspx?terms=ssis"&gt;new content for SSIS&lt;/a&gt;, as well as &lt;a href="http://www.jumpstarttv.com/channels/SQL.aspx"&gt;other SQL technologies&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Here are some of the SSIS videos that have been published since my last post:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/ssis-stumpers-v1-unpivot-example_268.aspx?searchid=36907"&gt;SSIS Stumpers V1 – Unpivot Example&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/using-the-aggregrate-transform-for-group-bys-in-ssis_510.aspx?searchid=36907"&gt;Using the Aggregate Transform for Group Bys in SSIS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/scheduling-ssis-packages-with-sql-server-agent_503.aspx?searchid=36907"&gt;Scheduling SSIS Packages with SQL Server Agent&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/using-a-sort-transform-in-ssis_509.aspx?searchid=36907"&gt;Using a Sort Transform in SSIS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/using-data-viewers-in-ssis_507.aspx?searchid=36906"&gt;Using Data Viewers in SSIS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/using-the-file-system-task-in-ssis_508.aspx?searchid=36906"&gt;Using the File System Task in SSIS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/executing-ssis-package-in-ssms_496.aspx?searchid=36906"&gt;Executing SSIS Package in SSMS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/adding-a-time-stamp-to-a-files-in-ssis_489.aspx?searchid=36906"&gt;Adding a Time Stamp to a File Name in SSIS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/parameterizing-the-execute-sql-task-in-ssis_500.aspx?searchid=36906"&gt;Parameterizing the Execute SQL Task in SSIS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/ssis-lookup-transform-basics_632.aspx?searchid=36906"&gt;SSIS Lookup Transform Basics&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/ssis-lookup-transform-lookup-failures_633.aspx?searchid=36906"&gt;SSIS Lookup Transform - Lookup Failures&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/secure-ftp-file-transfer-in-ssis_631.aspx?searchid=36906"&gt;Secure FTP File Transfer in SSIS&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jumpstarttv.com/expression-language-basics_630.aspx?searchid=36906"&gt;Expression Language Basics&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Don’t forget the &lt;a href="http://blogs.msdn.com/mattm/archive/2009/05/26/tutorial-ssis-performance-videos.aspx"&gt;SSIS tutorials posted on MSDN&lt;/a&gt; as well.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9641620" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Getting+Started/default.aspx">Getting Started</category><category domain="http://blogs.msdn.com/mattm/archive/tags/Tutorial/default.aspx">Tutorial</category></item><item><title>Tutorial: SSIS Performance Videos</title><link>http://blogs.msdn.com/mattm/archive/2009/05/26/tutorial-ssis-performance-videos.aspx</link><pubDate>Tue, 26 May 2009 16:01:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9641598</guid><dc:creator>mmasson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9641598.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9641598</wfw:commentRss><description>&lt;p&gt;This post is coming a little late (these have already been announced &lt;a href="http://sqlcat.com/presentations/archive/2009/05/02/designing-and-tuning-for-performance-your-ssis-packages-in-the-enterprise-sql-video-series.aspx"&gt;here&lt;/a&gt; and &lt;a href="http://dougbert.com/blogs/dougbert/archive/2009/04/30/speed-up-your-etl-with-4-new-ssis-performance-videos-from-microsoft.aspx"&gt;here&lt;/a&gt;), but incase you haven’t seen these before, I wanted to bring attention to four new performance related created by the &lt;a href="http://sqlcat.com/Default.aspx"&gt;SQLCAT&lt;/a&gt; and SSIS teams. They mostly focus on larger scale/Enterprise level package deployments, but there are good tips for all levels of SSIS usage. &lt;/p&gt;  &lt;p&gt;From the &lt;a href="http://sqlcat.com/presentations/archive/2009/05/02/designing-and-tuning-for-performance-your-ssis-packages-in-the-enterprise-sql-video-series.aspx"&gt;SQLCAT post&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Measuring and Understanding the Performance of Your SSIS Packages in the Enterprise (SQL Server Video)&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795223.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://go.microsoft.com/fwlink/?LinkId=149083"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: Denny Lee, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video demonstrates how to measure and understand the performance of packages, based on lessons learned from enterprise customers. In this video, you will learn the following guidelines for improving performance: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;How the limits of the source system affect performance. &lt;/li&gt;    &lt;li&gt;Why disk I/O is important. &lt;/li&gt;    &lt;li&gt;Why you should establish a package performance baseline &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Tuning Your SSIS Package Data Flow in the Enterprise (SQL Server Video)      &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795225.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://msdn.microsoft.com/en-us/library/dd795225.aspx"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: David Noor, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video demonstrates how to improve the performance of the data flow in an Integration Services package. In this video, you will learn how to tune the following phases of the data flow: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Extraction &lt;/li&gt;    &lt;li&gt;Transformation &lt;/li&gt;    &lt;li&gt;Loading &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can apply these performance tuning tips when you design, develop, and run the data flow.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Understanding SSIS Data Flow Buffers (SQL Server Video)&lt;/strong&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795224.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://go.microsoft.com/fwlink/?LinkId=149086"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: Bob Bojanic, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video looks at the memory buffers that transfer data to the data flow of an Integration Services package. The video includes the following items: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Demonstration of a simple package that shows you how Integration Services divides the data along the data flow paths and how buffers carry data along those paths.      &lt;br /&gt;This simple package performs the following operations:       &lt;ul&gt;       &lt;li&gt;Data extraction &lt;/li&gt;        &lt;li&gt;Character mapping &lt;/li&gt;        &lt;li&gt;Creation of new columns by using a synchronous transformation &lt;/li&gt;        &lt;li&gt;Multicasting &lt;/li&gt;        &lt;li&gt;Sorting by using a blocking (asynchronous) transformation. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Design guidelines for building and maintaining the data flow of a package. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Designing Your SSIS Packages for Parallelism (SQL Server Video)      &lt;br /&gt;&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd795221.aspx"&gt;Link&lt;/a&gt; | &lt;a href="http://go.microsoft.com/fwlink/?LinkId=149087"&gt;Watch this video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Author&lt;/strong&gt;: Matt Carroll, Microsoft Corporation&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This video demonstrates how to increase the performance of your Integration Services packages by designing for parallelism. &lt;/p&gt;  &lt;p&gt;------&lt;/p&gt;  &lt;p&gt;These four videos join the &lt;a href="http://msdn.microsoft.com/en-us/library/dd299421.aspx"&gt;growing list of SSIS tutorial videos&lt;/a&gt; in the SQL Server Video series. Others that might interest you:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd299421.aspx"&gt;Creating a Basic Package&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952922.aspx"&gt;Exporting SQL Server Data to Excel&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd440761.aspx"&gt;How to: Automate SSIS Package Execution by Using the SQL Server Agent&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952927.aspx"&gt;How to: Call a Web Service by Using the Web Service Task&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952929.aspx"&gt;How to: Implement a Lookup Transformation in Full Cache Mode&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc952923.aspx"&gt;How to: Use the Data Profiling Task&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd440760.aspx"&gt;Troubleshooting: SSIS Package Execution Using SQL Server Agent&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9641598" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Getting+Started/default.aspx">Getting Started</category><category domain="http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.msdn.com/mattm/archive/tags/Tutorial/default.aspx">Tutorial</category></item><item><title>Avoiding Common Pitfalls in SSIS</title><link>http://blogs.msdn.com/mattm/archive/2009/05/20/avoiding-common-pitfalls-in-ssis.aspx</link><pubDate>Wed, 20 May 2009 21:42:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9632927</guid><dc:creator>mmasson</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9632927.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9632927</wfw:commentRss><description>&lt;p&gt;I’ve uploaded the slides for the Chalk Talk I gave at TechEd last week. I always appreciate feedback (good or bad), and I’ve gotten some great comments so far. If you attended the session (or just like the slides), feel free to comment below. &lt;/p&gt;  &lt;p&gt;&lt;iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-2aeb3aa8bb4bd9fd.skydrive.live.com/embedrowdetail.aspx/Public/SSIS%7C_Pitfalls.pptx" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9632927" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Getting+Started/default.aspx">Getting Started</category></item><item><title>Samples for the CDC &amp; Merge demo</title><link>http://blogs.msdn.com/mattm/archive/2009/05/02/samples-for-the-cdc-merge-demo.aspx</link><pubDate>Sun, 03 May 2009 00:53:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9584137</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9584137.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9584137</wfw:commentRss><description>&lt;p&gt;I’ve put together the samples I used in the Incremental Data Warehousing talk I did at the SSWUG.Org Virtual Conference. You can download them from my sky drive, here:&lt;/p&gt; &lt;iframe style="border-bottom: #dde5e9 1px solid; border-left: #dde5e9 1px solid; padding-bottom: 0px; background-color: #ffffff; margin: 3px; padding-left: 0px; width: 240px; padding-right: 0px; height: 26px; border-top: #dde5e9 1px solid; border-right: #dde5e9 1px solid; padding-top: 0px" marginheight="0" src="http://cid-2aeb3aa8bb4bd9fd.skydrive.live.com/embedrow.aspx/Public/MergeCDC.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;The zip has a readme.txt file that should explain how to setup and run the samples. Please let me know if you have any questions. &lt;/p&gt;  &lt;p&gt;For those keeping track – these are the same demos I did at the last PASS Conference in Seattle. I updated the talk a bit for the SSWUG conference, but the demos are essentially the same. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9584137" width="1" height="1"&gt;</description></item><item><title>Sample videos posted for the SSWUG.ORG Virtual Conference</title><link>http://blogs.msdn.com/mattm/archive/2009/04/08/sample-videos-posted-for-the-sswug-org-virtual-conference.aspx</link><pubDate>Wed, 08 Apr 2009 15:48:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9538440</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9538440.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9538440</wfw:commentRss><description>&lt;p&gt;They’ve posted 10 minute previews for some of the talks at the upcoming &lt;a href="http://blogs.msdn.com/mattm/archive/2009/03/30/sswug-org-ultimate-virtual-conference-april-2009.aspx"&gt;SSWUG.ORG Virtual Conference&lt;/a&gt;. Here are some of the SSIS related topics:&lt;/p&gt;  &lt;p&gt;Matt Masson - &lt;a href="http://www.vconferenceonline.com/speaker.asp?id=mmasson"&gt;Incremental Data Warehouse Loads with Merge &amp;amp; CDC&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;John Welch -&amp;#160; &lt;a href="http://www.vconferenceonline.com/speaker.asp?id=JWelch"&gt;Doing More (ETL) With Less (Effort) by Automating SSIS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Brian Knight - &lt;a href="http://www.vconferenceonline.com/speaker.asp?id=BKnight"&gt;Loading a Data Warehouse With SSIS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Anthony D’Angelo - &lt;a href="http://www.vconferenceonline.com/speaker.asp?id=ADAngelo"&gt;Deep Dive: Extending SSIS with .NET Development&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;They also have a &lt;a href="http://vconferenceonline.com/shows/spring09/sql/s09event.asp"&gt;free community event&lt;/a&gt; coming up on April 17th. If you’re not sure how the whole virtual conference thing works, this event is a great way to try it out. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9538440" width="1" height="1"&gt;</description></item><item><title>SQL Server 2008 Service Pack 1 is now available</title><link>http://blogs.msdn.com/mattm/archive/2009/04/08/sql-server-2008-service-pack-1-is-now-available.aspx</link><pubDate>Wed, 08 Apr 2009 15:23:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9538385</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9538385.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9538385</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19&amp;amp;displaylang=en"&gt;SQL Server 2008 SP1&lt;/a&gt; is now available for download, as well as the updated &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=b33d2c78-1059-4ce2-b80d-2343c099bcb4&amp;amp;displaylang=en"&gt;Feature Pack&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Happy downloading!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9538385" width="1" height="1"&gt;</description></item><item><title>SSWUG.ORG Ultimate Virtual Conference – April 2009</title><link>http://blogs.msdn.com/mattm/archive/2009/03/30/sswug-org-ultimate-virtual-conference-april-2009.aspx</link><pubDate>Mon, 30 Mar 2009 16:58:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9519540</guid><dc:creator>mmasson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9519540.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9519540</wfw:commentRss><description>&lt;p&gt;&lt;img title="468" height="60" alt="468" src="http://blogs.msdn.com/blogfiles/mattm/WindowsLiveWriter/SSWUG.ORGSpringVirtualConference09_B6F5/468_3.gif" width="468" /&gt;&lt;/p&gt;  &lt;p&gt;I flew to Tucson last week to record my sessions for the upcoming &lt;a href="https://www.vconferenceonline.com/upcoming.asp"&gt;SSWUG.ORG Spring Virtual Conference&lt;/a&gt;. I recorded three sessions for the &lt;a href="http://www.vconferenceonline.com/shows/spring09/bi/"&gt;BI track&lt;/a&gt;: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;How to Avoid Common Pitfalls with SSIS&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Starting up a new project with SQL Server Integration Services? Save time and money by learning about how to avoid common issues that users hit when implementing their ETL solutions. Drawing on the most frequently asked questions in the MSDN Integration Services forum and some of the more interesting packages we've seen over the years, we'll highlight common mistakes, clear up some misconceptions, and provide best practices to help you efficiently and effectively use Integration Services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Incremental Data Warehouse Loads with MERGE and Change Data Capture&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This talk describes the new MERGE statement and Change Data Capture (CDC) feature introduced in SQL Server 2008, and how to take advantage of them in SQL Server Integration Services. We'll cover the traditional ways of doing incremental data loads, and see how these new key features make the process a whole lot easier. If you're interested in learning best practices for this new SQL Server 2008 functionality, you won't want to miss this session!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;New Connectivity Options in SSIS 2008&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Figuring out the best way to connect to your data sources can be tricky. SQL Server Integration Services 2008 has made it easier with the addition of new high performance connectors for Oracle, Teradata, and SAP BI. This talk will walk through their features, and take a look at how they can drastically improve the performance of your data loads.&lt;/p&gt;  &lt;p&gt;They put together a very impressive list of &lt;a href="https://www.vconferenceonline.com/shows/spring09/bi/speakers.asp"&gt;speakers&lt;/a&gt; again (I’m still surprised – and honored – to see my name next to these people!), and the &lt;a href="http://www.vconferenceonline.com/shows/spring09/bi/abstract.asp"&gt;sessions&lt;/a&gt; look pretty good as well. I’m sure I’ll be attending a number of the sessions myself. Some of the other SSIS ones include:&lt;/p&gt;  &lt;p&gt;Anthony D'Angelo - &lt;strong&gt;Deep Dive: Extending SSIS with .NET Development&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Brian Knight - &lt;strong&gt;Dynamically Configuring SSIS packages, Loading a Data Warehouse in SSIS, Performance Tuning SSIS 2005 and 2008&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;John Welch - &lt;strong&gt;Doing More (ETL) with Less (Effort) by Automating SSIS, Processing Flat Files with SSIS&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ted Malone - &lt;strong&gt;Agile Business Intelligence - Proven Techniques that move BI Development into the Agile World&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;They still have an early bird registration rate going, and you can use the vip code SPVMMASP09 to get an additional discount. The conference runs from April 22-24th… hope to see you there!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9519540" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Conferences/default.aspx">Conferences</category></item><item><title>SSIS Team Blog – Now in Chinese</title><link>http://blogs.msdn.com/mattm/archive/2009/03/10/ssis-team-blog-now-in-chinese.aspx</link><pubDate>Tue, 10 Mar 2009 16:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9469271</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9469271.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9469271</wfw:commentRss><description>&lt;p&gt;Xiaochen Wu, a member of our Shanghai team, has started a &lt;a href="http://blogs.msdn.com/xiwu/"&gt;Chinese SSIS blog&lt;/a&gt;. He’s started it off by translating some of the posts I’ve done, and I’m sure he’ll find plenty of content in the future. &lt;/p&gt;  &lt;p&gt;I don’t know what the following text means, but I assume it’s the title of the blog :)&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/xiwu/default.aspx"&gt;SSIS 技术博客&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;分享SSIS使用心得和技巧&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9469271" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/SSIS/default.aspx">SSIS</category></item><item><title>We Loaded 1TB in 30 Minutes with SSIS, and So Can You</title><link>http://blogs.msdn.com/mattm/archive/2009/03/03/we-loaded-1tb-in-30-minutes-with-ssis-and-so-can-you.aspx</link><pubDate>Wed, 04 Mar 2009 01:16:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9457813</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9457813.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9457813</wfw:commentRss><description>&lt;p&gt;A popular SSIS talk at recent conferences has been about the &lt;a href="http://blogs.msdn.com/mattm/archive/2008/02/27/ssis-sets-an-etl-world-record.aspx"&gt;ETL Record&lt;/a&gt; that we announced last year. They’ve converted the talk to a white paper, and it is &lt;a href="http://msdn.microsoft.com/en-us/library/dd537533.aspx"&gt;now available&lt;/a&gt; on MSDN. It’s a very interesting read.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt; In February 2008, Microsoft announced a record-breaking data load using Microsoft® SQL Server® Integration Services (SSIS): 1 TB of data in less than 30 minutes. That data load, using SQL Server Integration Services, was 30% faster than the previous best time using a commercial ETL tool. This paper outlines what it took: the software, hardware, and configuration used. We will describe what we did to achieve that result, and offer suggestions for how to relate these techniques to typical scenarios. Even for customers who don't have needs quite like this benchmark, such efforts can teach a lot about getting optimal performance.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9457813" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Performance/default.aspx">Performance</category></item><item><title>API Sample – Programmatically create and export configuration files for your packages</title><link>http://blogs.msdn.com/mattm/archive/2009/03/02/api-sample-programmatically-create-and-export-configuration-files-for-your-packages.aspx</link><pubDate>Mon, 02 Mar 2009 23:14:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9455404</guid><dc:creator>mmasson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9455404.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9455404</wfw:commentRss><description>&lt;p&gt;The &lt;a href="http://blogs.msdn.com/mattm/archive/2009/03/02/api-sample-programmatically-add-a-configuration-file-to-a-package.aspx"&gt;previous sample&lt;/a&gt; shows how to add a reference to an existing configuration file. This sample shows how to create a new configuration file for a package.&lt;/p&gt;  &lt;p&gt;Things to note:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The first step is to flag the property you want to export by calling DtsProperty.SetExport(). The first argument is a reference to the object the property belongs to. &lt;/li&gt;    &lt;li&gt;The CreatePackage() method just creates a package (it doesn’t matter what is in it). Typically you’d be using this code to add a configuration to an existing package (doing a Package.LoadFromXml() or something similar)&lt;/li&gt; &lt;/ul&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ConfigurationExport
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;static void &lt;/span&gt;Main(&lt;span style="color: blue"&gt;string&lt;/span&gt;[] args)
    {
        &lt;span style="color: green"&gt;//
        // Export a configuration for all connection managers in a package
        //
        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Package &lt;/span&gt;package = CreatePackage();

        &lt;span style="color: green"&gt;// Enable configurations
        &lt;/span&gt;package.EnableConfigurations = &lt;span style="color: blue"&gt;true&lt;/span&gt;;

        &lt;span style="color: green"&gt;// Flag all connection manager connection strings as exportable
        &lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;cm &lt;span style="color: blue"&gt;in &lt;/span&gt;package.Connections)
        {
            &lt;span style="color: #2b91af"&gt;DtsProperty &lt;/span&gt;connectionStringProp = cm.Properties[&lt;span style="color: #a31515"&gt;&amp;quot;ConnectionString&amp;quot;&lt;/span&gt;];
            connectionStringProp.SetExport(cm, &lt;span style="color: blue"&gt;true&lt;/span&gt;);
        }

        &lt;span style="color: green"&gt;// Export the configuration file
        &lt;/span&gt;package.ExportConfigurationFile(&lt;span style="color: #a31515"&gt;@&amp;quot;c:\temp\config.dtsconfig&amp;quot;&lt;/span&gt;);
    }

    &lt;span style="color: blue"&gt;static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Package &lt;/span&gt;CreatePackage()
    {
        &lt;span style="color: blue"&gt;var &lt;/span&gt;p = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Package&lt;/span&gt;();

        &lt;span style="color: green"&gt;// Add Data Flow Task
        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Executable &lt;/span&gt;dataFlowTask = p.Executables.Add(&lt;span style="color: #a31515"&gt;&amp;quot;STOCK:PipelineTask&amp;quot;&lt;/span&gt;);

        &lt;span style="color: green"&gt;// Set the name (otherwise it will be a random GUID value)
        &lt;/span&gt;&lt;span style="color: blue"&gt;var &lt;/span&gt;taskHost = dataFlowTask &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TaskHost&lt;/span&gt;;
        &lt;span style="color: #2b91af"&gt;Debug&lt;/span&gt;.Assert(taskHost != &lt;span style="color: blue"&gt;null&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Unexpected task type&amp;quot;&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;&lt;span style="color: blue"&gt;var &lt;/span&gt;pipeline = taskHost.InnerObject &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MainPipe&lt;/span&gt;;
        &lt;span style="color: #2b91af"&gt;Debug&lt;/span&gt;.Assert(pipeline != &lt;span style="color: blue"&gt;null&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;Unexpected InnerObject type&amp;quot;&lt;/span&gt;);

        &lt;span style="color: green"&gt;// Create a package variable to store the row count value
        &lt;/span&gt;p.Variables.Add(&lt;span style="color: #a31515"&gt;&amp;quot;RowCountVar&amp;quot;&lt;/span&gt;, &lt;span style="color: blue"&gt;false&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;User&amp;quot;&lt;/span&gt;, 0);

        &lt;span style="color: green"&gt;// Add connection manager
        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;ConnectionManager &lt;/span&gt;connection = p.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;MyConnection&amp;quot;&lt;/span&gt;;
        connection.ConnectionString = &lt;span style="color: #a31515"&gt;&amp;quot;Data Source=localhost;Initial Catalog=AdventureWorksDW2008;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;&amp;quot;&lt;/span&gt;;

        &lt;span style="color: green"&gt;// Add OLEDB Source
        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IDTSComponentMetaData100 &lt;/span&gt;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;;
        &lt;span style="color: #2b91af"&gt;IDTSDesigntimeComponent100 &lt;/span&gt;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 the given table
        &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;[DimCustomer]&amp;quot;&lt;/span&gt;);

        &lt;span style="color: green"&gt;// Set the connection manager
        &lt;/span&gt;srcComponent.RuntimeConnectionCollection[0].ConnectionManager = &lt;span style="color: #2b91af"&gt;DtsConvert&lt;/span&gt;.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;// Add Row Count transform
        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IDTSComponentMetaData100 &lt;/span&gt;rowCount = pipeline.ComponentMetaDataCollection.New();
        rowCount.ComponentClassID = &lt;span style="color: #a31515"&gt;&amp;quot;DTSTransform.RowCount&amp;quot;&lt;/span&gt;;
        &lt;span style="color: #2b91af"&gt;CManagedComponentWrapper &lt;/span&gt;instance = rowCount.Instantiate();
        instance.ProvideComponentProperties();

        &lt;span style="color: green"&gt;// Set the variable name property
        &lt;/span&gt;instance.SetComponentProperty(&lt;span style="color: #a31515"&gt;&amp;quot;VariableName&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;User::RowCountVar&amp;quot;&lt;/span&gt;);

        &lt;span style="color: green"&gt;// Connect the OLEDB Source and the Row Count
        &lt;/span&gt;&lt;span style="color: #2b91af"&gt;IDTSPath100 &lt;/span&gt;path = pipeline.PathCollection.New();
        path.AttachPathAndPropagateNotifications(srcComponent.OutputCollection[0], rowCount.InputCollection[0]);

        &lt;span style="color: blue"&gt;return &lt;/span&gt;p;
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9455404" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/API/default.aspx">API</category></item><item><title>API Sample - Programmatically add a configuration file to a package</title><link>http://blogs.msdn.com/mattm/archive/2009/03/02/api-sample-programmatically-add-a-configuration-file-to-a-package.aspx</link><pubDate>Mon, 02 Mar 2009 23:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9455390</guid><dc:creator>mmasson</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9455390.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9455390</wfw:commentRss><description>&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Update&amp;nbsp;2009-03-03&lt;/STRONG&gt;: Darren Green has a &lt;A class="" href="http://www.sqlis.com/post/Creating-packages-in-code-Package-Configurations.aspx" mce_href="http://www.sqlis.com/post/Creating-packages-in-code-Package-Configurations.aspx"&gt;post which covers the other configuration types as well&lt;/A&gt;. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;This sample programmatically adds a reference to an existing configuration file to a package.&lt;/P&gt;
&lt;P&gt;Things to note:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The CreatePackage() method just creates a package (it doesn’t matter what is in it). Typically you’d be using this code to add a configuration to an existing package (doing a Package.LoadFromXml() or something similar)&lt;/LI&gt;
&lt;LI&gt;For this approach to work, the paths in the configuration file must be the same in every package.&lt;/LI&gt;&lt;/UL&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: blue"&gt;class &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ConfigurationReference
&lt;/SPAN&gt;{
    &lt;SPAN style="COLOR: blue"&gt;static void &lt;/SPAN&gt;Main(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;[] args)
    {
        &lt;SPAN style="COLOR: green"&gt;//
        // Add a reference to an existing configuration file.
        // Note all property paths must match.
        //
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Package &lt;/SPAN&gt;package = CreatePackage();

        &lt;SPAN style="COLOR: green"&gt;// Enable configurations
        &lt;/SPAN&gt;package.EnableConfigurations = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;

        &lt;SPAN style="COLOR: green"&gt;// Create the configuration reference
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Configuration &lt;/SPAN&gt;config = package.Configurations.Add();
        config.Name = &lt;SPAN style="COLOR: #a31515"&gt;"Configuration"&lt;/SPAN&gt;;
        config.ConfigurationType = &lt;SPAN style="COLOR: #2b91af"&gt;DTSConfigurationType&lt;/SPAN&gt;.ConfigFile;
        config.ConfigurationString = &lt;SPAN style="COLOR: #a31515"&gt;@"c:\temp\config.dtsconfig"&lt;/SPAN&gt;;
    }

    &lt;SPAN style="COLOR: blue"&gt;static &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Package &lt;/SPAN&gt;CreatePackage()
    {
        &lt;SPAN style="COLOR: blue"&gt;var &lt;/SPAN&gt;p = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Package&lt;/SPAN&gt;();

        &lt;SPAN style="COLOR: green"&gt;// Add Data Flow Task
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Executable &lt;/SPAN&gt;dataFlowTask = p.Executables.Add(&lt;SPAN style="COLOR: #a31515"&gt;"STOCK:PipelineTask"&lt;/SPAN&gt;);

        &lt;SPAN style="COLOR: green"&gt;// Set the name (otherwise it will be a random GUID value)
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;var &lt;/SPAN&gt;taskHost = dataFlowTask &lt;SPAN style="COLOR: blue"&gt;as &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;TaskHost&lt;/SPAN&gt;;
        &lt;SPAN style="COLOR: #2b91af"&gt;Debug&lt;/SPAN&gt;.Assert(taskHost != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"Unexpected task type"&lt;/SPAN&gt;);

        taskHost.Name = &lt;SPAN style="COLOR: #a31515"&gt;"Data Flow Task"&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;&lt;SPAN style="COLOR: blue"&gt;var &lt;/SPAN&gt;pipeline = taskHost.InnerObject &lt;SPAN style="COLOR: blue"&gt;as &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;MainPipe&lt;/SPAN&gt;;
        &lt;SPAN style="COLOR: #2b91af"&gt;Debug&lt;/SPAN&gt;.Assert(pipeline != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"Unexpected InnerObject type"&lt;/SPAN&gt;);

        &lt;SPAN style="COLOR: green"&gt;// Create a package variable to store the row count value
        &lt;/SPAN&gt;p.Variables.Add(&lt;SPAN style="COLOR: #a31515"&gt;"RowCountVar"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"User"&lt;/SPAN&gt;, 0);

        &lt;SPAN style="COLOR: green"&gt;// Add connection manager
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ConnectionManager &lt;/SPAN&gt;connection = p.Connections.Add(&lt;SPAN style="COLOR: #a31515"&gt;"OLEDB"&lt;/SPAN&gt;);
        connection.Name = &lt;SPAN style="COLOR: #a31515"&gt;"MyConnection"&lt;/SPAN&gt;;
        connection.ConnectionString = &lt;SPAN style="COLOR: #a31515"&gt;"Data Source=localhost;Initial Catalog=AdventureWorksDW2008;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;"&lt;/SPAN&gt;;

        &lt;SPAN style="COLOR: green"&gt;// Add OLEDB Source
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IDTSComponentMetaData100 &lt;/SPAN&gt;srcComponent = pipeline.ComponentMetaDataCollection.New();
        srcComponent.ComponentClassID = &lt;SPAN style="COLOR: #a31515"&gt;"DTSAdapter.OleDbSource"&lt;/SPAN&gt;;
        srcComponent.ValidateExternalMetadata = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;
        &lt;SPAN style="COLOR: #2b91af"&gt;IDTSDesigntimeComponent100 &lt;/SPAN&gt;srcDesignTimeComponent = srcComponent.Instantiate();
        srcDesignTimeComponent.ProvideComponentProperties();
        srcComponent.Name = &lt;SPAN style="COLOR: #a31515"&gt;"OleDb Source"&lt;/SPAN&gt;;

        &lt;SPAN style="COLOR: green"&gt;// Configure it to read from the given table
        &lt;/SPAN&gt;srcDesignTimeComponent.SetComponentProperty(&lt;SPAN style="COLOR: #a31515"&gt;"AccessMode"&lt;/SPAN&gt;, 0);
        srcDesignTimeComponent.SetComponentProperty(&lt;SPAN style="COLOR: #a31515"&gt;"OpenRowset"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"[DimCustomer]"&lt;/SPAN&gt;);

        &lt;SPAN style="COLOR: green"&gt;// Set the connection manager
        &lt;/SPAN&gt;srcComponent.RuntimeConnectionCollection[0].ConnectionManager = &lt;SPAN style="COLOR: #2b91af"&gt;DtsConvert&lt;/SPAN&gt;.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;// Add Row Count transform
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IDTSComponentMetaData100 &lt;/SPAN&gt;rowCount = pipeline.ComponentMetaDataCollection.New();
        rowCount.ComponentClassID = &lt;SPAN style="COLOR: #a31515"&gt;"DTSTransform.RowCount"&lt;/SPAN&gt;;
        &lt;SPAN style="COLOR: #2b91af"&gt;CManagedComponentWrapper &lt;/SPAN&gt;instance = rowCount.Instantiate();
        instance.ProvideComponentProperties();

        &lt;SPAN style="COLOR: green"&gt;// Set the variable name property
        &lt;/SPAN&gt;instance.SetComponentProperty(&lt;SPAN style="COLOR: #a31515"&gt;"VariableName"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"User::RowCountVar"&lt;/SPAN&gt;);

        &lt;SPAN style="COLOR: green"&gt;// Connect the OLEDB Source and the Row Count
        &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;IDTSPath100 &lt;/SPAN&gt;path = pipeline.PathCollection.New();
        path.AttachPathAndPropagateNotifications(srcComponent.OutputCollection[0], rowCount.InputCollection[0]);

        &lt;SPAN style="COLOR: blue"&gt;return &lt;/SPAN&gt;p;
    }
}&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9455390" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/API/default.aspx">API</category></item><item><title>Microsoft Tech-Ed North America 2009</title><link>http://blogs.msdn.com/mattm/archive/2009/03/02/microsoft-tech-ed-north-america-2009.aspx</link><pubDate>Mon, 02 Mar 2009 19:32:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9454995</guid><dc:creator>mmasson</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mattm/comments/9454995.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mattm/commentrss.aspx?PostID=9454995</wfw:commentRss><description>&lt;p&gt;&lt;img style="display: inline; margin: 0px 0px 15px 20px" alt="Tech Ed Lives Here" src="http://www.msteched.com/img/promo_teched-liveshere.jpg" align="right" /&gt;Are you going to &lt;a href="http://www.msteched.com/teched/default.aspx"&gt;TechEd&lt;/a&gt; in May? I’ll be down there in lovely Los Angeles answering questions at the SSIS booth and doing a Chalk Talk on avoiding common pitfalls with SSIS. There’s only a couple of SSIS related breakout sessions this time around, but plenty on the database platform and BI in general (&lt;a href="http://www.msteched.com/sessionlist/default.aspx"&gt;there’s 430 breakout sessions in total&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;BIN301 Connectivity Options for Data Integration with Microsoft SQL Server Integration Services&lt;/p&gt;  &lt;p&gt;BIN207 Upgrading DTS Packages to Microsoft SQL Server Integration Services&lt;/p&gt;  &lt;p&gt;Let me know if you’re going! Maybe we can arrange some sort of party for SSIS on the side…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.msteched.com/teched/default.aspx"&gt;&lt;img height="90" src="http://photos-c.ak.fbcdn.net/photos-ak-snc1/v2335/245/106/1255022659/n1255022659_320082_90.jpg" width="120" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9454995" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mattm/archive/tags/Conferences/default.aspx">Conferences</category></item></channel></rss>