• Where I work, we came up with almost the exact same methodology as Ferguson, with one minor extra tweak. (I have no DTS programming skills, so please pardon me if I get some of the terms wrong here.)

    In every DTS package we added a global variable named "Version". This variable is not used anywhere, it just sits there as a label. Developers work over their DTS packages on the Development environment, and when they are satisfied they alert the Deployment team. The following steps are then followed:

    -- Check the (prior) strucutred storage file out of VSS

    -- Increment the DTS package version number by one (open, change, save)

    -- Delete the checked-out file from the folder VSS copied it into

    -- Recreate it with the new version (thus, only one DTS version in a file)

    -- Check the (new) file back into VSS

    -- Load/deploy the file into the QC environment (and later to Production)

    -- Mark a log (chart on the wall) with date and version number deployed (quick reference)

    I came up with this because how else can you tell what version of your DTS package(s) have been installed on what server? The built-in versioning system uses a combination of guids and internal versioning (DTS package contains X versions orderd by saved date/time), but there's no way I wanted to maintain dozens if not hundreds of DTS package versions on any server outside of Development (we burn through saved versions like you wouldn't believe--msdb size management gets to be an issue), and trying to track earlier/later through reading guids is just nuts.

    Lastly, I came up with a VB script routine that would read this version number from all our packages and save it in a text file. Run on all environments, load into an Excel spreadsheet, tweak formatting and you have an instant record of which versions of which packages are on which environments.

    We have 29 DTS packages across five environments. I don't know if this is lots or little, but I'd hate to have to "debug" a messed up deployment by hand...

    Philip

    P.S. Metadataservices is that node in Enterprise Manager which, if you accidentally click on, you have to wait a few minutes for it to determine you haven't done anything with it before it lets you click on what you really wanted to click on. If it does anything more than that, well, I too have never found out what it is.