Kenneth Fisher put a blog post out about how to determine What SQL Version is My SSIS Package? in April, 2015.
It has a table of which SQL versions map to which PackageFormatVersion
of the SSIS package found in the XML metadata. This is useful when looking at 1 single individual package.
I have a folder of about 100 SSIS .DTSX
packages that I need to know which SQL Version they all are.
How can I determine, in bulk, what the PackageFormatVersion
(i.e. the SQL version) for multiple .DTSX
packages in a folder (file system)?
The end goal is to determine which is the proper TFS version to get and implement to put these packages into, as no source control system exists currently. The table Kenneth presents will help me answer this question, but first I need to confirm what the package SQL versions are.
Assume that I do NOT have BIDS nor SSDT installed.
Assume a desired output would be something like this, where pipe designates a new column:
PackageFilename | PackageFormatVersion
--------------------------------------
Package1.dtsx | 3
Package2.dtsx | 4
PowerShell, TSQL, 3rd party tools that can crawl a directory structure, or other tools are welcome.
Best Answer
Retrieve dtsx info programmatically
You can read my detailed answer on StackoverFlow:
Demo App
I Created A Demo Application to achieve this procedure you can download it from the following link:
Also i created a new Git-repository for this demo app
App screenshot
Retrieve dtsx PackageFormatVersion using TSQL
I wrote an SQL query that get files from a specific directory, filter on *.dtsx file then read
PackageFormatVersion
property from them.Result looks like
References