SSIS

Presenting at PASS AppDev Virtual Chapter

Join me next Tuesday, December 14th at 11:00am CST as I present a webcast on behalf of the PASS AppDev Virtual Chapter.  I’ll be presenting “Dynamic SSIS with Expressions and Configurations”, where I show you how to remove static elements (such as connection strings, file names, and other transient values) from your packages and placing them in easier-to-administer configurations or…


SSIS: Conditional File Processing in a ForEach Loop

I’ve fielded a number of requests recently asking how to interrogate a file within SSIS and change the processing rules based on the metadata of said file. A recent forum poster specifically asked about using the foreach loop to iterate through the files in a directory and, on a per-file basis, either process the file or skip the file if…


Book Review – SQL Server Integration Services: Problem – Design – Solution

I usually don’t do book reviews (at least publicly, anyway), but when I find a piece of work that I really get a lot out of, I don’t mind sharing my experience. Such was the case with a book I finished recently. SQL Server 2008 Integration Services: Problem – Design – Solution is a concise guide to becoming a better…


An Un-CATCHable Error?

I’ve been using the scripting tools in SSIS for some time, but I came across something today that I can’t quite explain.  I normally don’t posts unresolved problems on my blog, but I’m trying out a strategy suggested by my friend Lee Everest by sharing unfinished work in the hopes that my research and troubleshooting can help someone else. So…


Alpha Split in SSIS, Redux

So I’ve discovered another benefit of being a technical blogger.  Not only do you get some kudos when you write something that helps someone else, but if you offer up a less-than-optimal solution, you’ll get some suggestions on how it can be done better.  I’ve had my share of the former, but earlier this week I experienced the latter. Last…


SSIS Alpha Splits using the CODEPOINT() Function

A relatively common requirement in ETL processing is to break records into disparate outputs based on an alphabetical split on a range of letters.  A practical example of this would be a work queue for collections staff based on last name; records would be pulled from a common source and then separated into multiple outputs based on a the Customer…


LEFT(), or Left Out?

So the question came up earlier today about the RIGHT() and LEFT() functions in the SSIS expression language.  Like the Transact-SQL functions, one might assume that these functions would exist in SSIS expression language to snatch a specified subset of a string.  That assumption would be only half right. Don’t go digging for a LEFT() function in the expression language,…


Eliminating Empty Output Files in SSIS

So you’ve got some packages that regularly extract data to one or more text files, but you know that from time to time some of the queries will not return any data. However, you find in SSIS that, in a flat file export package, the output file is created regardless of whether any rows are written to the file, and…


Space Sensitivity in SSIS Lookups

It has been well-documented through myriad blogs and forum posts about the case sensitivity of the comparisons in the SSIS lookup transformation (a good review can be found here). In a nutshell, a comparison using the lookup transformation is case sensitive when using the default setting of Full Cache, even if the values in the database are stored in a case…


Skipping Items in a Foreach Loop

Recently, my friend Jack Corbett asked a question on Twitter: In a nutshell, the SSIS foreach loop will enumerate a given list of items (files in a directory, nodes in an XML file, static list of values, etc.) and will perform some operation for each of the items in the collection. This behavior is similar to foreach loop constructs that…