SSIS archives - SQL Server with Mr. Denny

SQL Server with Mr. Denny:

SSIS

Oct 7 2009   7:50AM GMT

Data Transformation Services vs. SSIS: The key differences



Posted by: mrdenny
DTS, SSIS, SQL Server 2008, SearchSQLServer.com

I recently published an article on SearchSQLServer.com about DTS and SSIS where I talk about some of the differences.  Obvsiolly I didn’t cover all the differences between DTS and SSIS, just some of them.  So don’t go railing on me that I didn’t cover something.

Denny

Dec 22 2008   11:00AM GMT

Development of SQL 2008 SSIS Packages Requires SSIS Service



Posted by: mrdenny
BIDS, SSIS, SQL Server 2008

Unlike in SQL 2005, when developing SSIS packages in SQL Server 2008 BIDS you must have the SSIS service installed on your workstation.  This is a change from SQL Server 2005 where you did not have to have the actual SSIS service installed on your workstation.

It doesn’t appear that you actually need to have the service running.  I have stopped the SSIS service on my workstation and I am still able to run my SQL 2008 SSIS packages, however I would recommend setting it to manual rather then disabled just in case BIDS needs it running for some reason.

If you try and edit an existing package without the SSIS service installed an error message will be displayed saying that the service needs to be installed.

Denny


Jul 24 2008   11:00AM GMT

How to setup SQL 2008 BIDS to use VB.NET as the default scripting language



Posted by: mrdenny
BIDS, SSIS, SQL Server 2008, Integration Services 2008

If you are like me and don’t know anything about C#, and you don’t want to have to change the script language every time to create a .NET script from C#.NET to VB.NET you can change the default.

 Open BIDS, and select Tools > Options.  On the menu on the left select “Business Intelligence Designers” then “Integration Services Designers”.  In the Script box in the middle of the right pain change the option in the drop down from “Microsoft Visual C# 2008″ to “Microsoft Visual Basic 2008″.

If you prefer C# you’ve got nothing to worry about as C# is the default option.

Denny


Jun 12 2008   5:24AM GMT

Use caution when upgrading SQL 2008 CTP SSIS packages to RC0



Posted by: mrdenny
Migration, SQL Server 2005, Beta, SSIS, SQL Server 2008

A ran across a bit of a problem when upgrading my SQL 2008  CTP 5 (November 2007) SSIS Packages to SQL 2008 RC0.  Apparently Microsoft has changed the way that they handle the script tasks within the SSIS packages.  Because of this when I edit all of the script tasks within my SSIS package the scripts were all blank.

 The official fix from Microsoft is to install the older CTP version that you edited the scripts in on another machine and open the un-updated version of the SSIS package on that machine, and copy the code for the scripts into the RC0 version of the SSIS package.

The only object which I’ve had to do this on was a .NET Script Task.  I had this problem when going from CTP 5 to CTP 6 as well as from CTP 5 to RC0.  This will not effect migrating from SQL 2005 to SQL 2008 as SQL 2005 and SQL 2008 CTP 5 do not use the same scripting engine in the back end.

Denny


Jan 3 2008   8:00AM GMT

Using a foreach loop to process an XML document.



Posted by: mrdenny
SQL, XML, DataManagement, SQL Server 2005, SSIS, SQL Server 2008

Receintly I was working on a project where I needed to use a foreach loop with an SSIS project, but couldn’t for the life of me get it to properly process the XML document which I was giving it.  Well with some major work and digging I was able to get it working correctly, but it took me for ever to get all the little setting correct so I figured that I’d throw the info up here for anyone else who is looking for it.

Some background on what the process is that I’m working on.  Basically I’ve got a table with catagorized data in it.  I need to export all the data from the table info one file per catagory (don’t ask, I didn’t design it, I’ve just got to automate it; and it actually makes sence in the grant schem of things).  Well I figured that the easiest way to do this was to use a foreach loop and give it an XML document with the list of catagories to process.  (This was better than looping through and getting the next value from the database.)

 So needless to say, I get started on my little process.

The query which I’m using within an Execute SQL Task is below.  The Execute SQL Task puts the XML data into an SSIS variable called v_CategoryList with a data type of string.

SELECT WebsiteBlockCategoryId as id
FROM dbo.WebsiteBlockCategory cat with (nolock)
where WebsiteBlockCategoryId  <> 0
for XML AUTO

The XML document looks like this. (SSIS seams to be wrapping it within <ROOT></ROOT> tags for me which is why I’m not doing it my self.)  My XML document is actually must longer than this, but you get the idea.  It’s a very basic XML document.

<ROOT>
 <cat id=”18″ />
 <cat id=”19″ />
 <cat id=”20″ />
 <cat id=”21″ />
 <cat id=”22″ />
 <cat id=”23″ />
 <cat id=”24″ />
 <cat id=”25″ />
 <cat id=”26″ />
 <cat id=”27″ />
 <cat id=”28″ />
</ROOT>

As you can see on the screenshot of the forloop properties I’ve set the source to be my variable and the EnumerationType to Element Collection.  Since I know where the data is within the XML document I use DirectInput for both the outer and Inner XPath strings.  For the Outer XPath string I’m using “//cat”.  Because I’m not putting in the ROOT level name it doesn’t matter what gets put in there as long as there is a parent level.    For the Inner XPath string I’ve got the Element name with an @ sign in front of it “@id”. 

Collection Screen

Over on the Variables page of the UI I’ve got my v_CategoryId variable mapped to Index 0 of my document.  If you need to output more than one element from your XML document set your Inner XPath to “*”.  This “should” allow you to bring back all the elements and refer to them by index number starting with 0.  I havn’t actually tried this, as I’ve always only needed a single element hense the “should”.

Variable Mappings Screen

And to think, that little thing took me a couple of days to get working right.  I can only imagine trying to do this in SQL 2000 and DTS.

Denny