• To Steve's list I would add a step to rebuild all heaps and clustered indexe so ensure all pages have a checksum. Without that, checksum will be applied (and checked with DBCC CHECKDB) only to newly changed pages, not the existing ones:

    The steps I follow when upgrading a DB from SQL 2000 or older:

    1. Restore the DB to SQL 2005/2008.

    2. Change compatibility level to 90 or 100.

    3. Change page_verify to CHECKSUM

    4. Rebuild all clustered indexes and heaps to ensure all pages have a checksum. For rebuilding a heap in sql 2008 there is "ALTER TABLE mytable REBUILD" command.

    5. DBCC CHECKDB with data_purity (to ensure checksum is good to go)

    6. DBCC UPDATEUSAGE (as a best practice to get the usage data up-to-date after the upgrade) -- sometimes needed to correct issues found by the data_purity check as well.

    To rebuild a heap in SQL2005 you have to create clustered index and then drop it.

    Best Regards,

    Vedran

    _____________________________________________________
    Microsoft Certified Master: SQL Server 2008
    XDetails Addin - for SQL Developers
    blog.sqlxdetails.com - Transaction log myths