• When we've upgraded we've done it one application at a time so the move to the newer server is gradual.

    Databases are backed up and restored on a development server of the new version and tested and any changes done there and re-tested, before being copied (backup & restored) to test/qa and after user acceptance, to new live server where any agent jobs can be set up too and then when ready the front end application is redirected.

    I also write ssis packages to transfer the data from old live to new server which can include any required transforms and be pointed at dev, test or live servers to refresh them and do practice runs. This allows data to be refreshed without having to re-amend any stored procedures, views etc which have been altered for the new version and can be run at go-live too for a final data cut.