Two weeks ago I wrote a tool to ease and improve the migration of a DTS package to a SSIS package. I named the tool DtsToSsis-Prepare, it is available with full source code at and now I wrote a larger article that describes the needs that DtsToSsis-Prepare try to solve.

For people who are too lazy to click a link, I extracted a part of the article in this post.

The following picture shows a DTS package before migration: each transformation has batch size, max error count and exception file set to non-default values.


This package has 4 UDL connections that use only 2 UDL files: one for the Staging database, the other for the DataMart database. This is necessary in a DTS package to allow parallelism between transformations (the same connection can serve only one data task at a time). Next picture illustrates connections structure of the initial DTS package.

If we try to migrate this DTS package into an SSIS package, we obtain this result.

It is not very useful to get one SSIS package containing two DTS packages.

Using the DtsToSsis-Prepare tool with all options enabled we get this “prepared” DTS package.

As you can see, UDL connections have been converted to standard connections and have been consolidated into only two physical connections. At this point this DTS package would be less parallelized, but we will never execute this package, we just want it to migrate in a fair way to SSIS. The next picture shows the result of this migration.

We have two Data Flow Tasks corresponding to our original Transform Data Tasks.

Each one is a simple transformation, but note that we have a total of only two connections in the SSIS package: we have the original DTS parallelization capabilities but only two connections to configure with the new SSIS capabilities.

 I would be glad to receive feedback and comments about this tool: probably there are other features that would be useful to add. There is also a dedicated support forum to submit comments/bug/ideas.