• This may be a silly statement, but your question suggests you aren't testing the migration before you put it into production. If that is the case then you could be making a mistake and not using some of the newer T-SQL to its fullest advantage. My steps would be the following:

    1. Import the existing production database into a SQL Server 2008R2 using detach/attach or a full restoration but retain the compatibility level of 90 to begin with

    2. Update statistics and usage

    3. Check to make sure the database does exactly what it is supposed to do

    4. Examine query statements to see if they can be optimised to take advantage of T-SQL enhancements. For me, the MERGE statement proved one of the most significiant improvements

    5. Backup the test database in compatibility level 90

    6. Promote the test database to compatibility level 100 and test thoroughly

    7. Once successful, move the database to the production environment.

    The most important thing to remember is do not perform this test migration just once but rather as often as your allocated time allows. The statement that make most sense here is this:

    "The amateur practices until he gets it right. The professional practices until he doesn't get it wrong."

    This means you really have to practice as often as you can. Use your documentation that you produce at each test phase practice and amend if required, accordingly.

    DO NOT use luck as the means to see if the migration is going to be successful!