Dear SQL Server experts,
Can you tell me the different between SQL-Server 2008 R2 and SQL-Server 2012 versions? I designed my product with version 2008 but when I tried to buy a licence, Microsoft said they won't sell it anymore, buy 2012 instead.
So I need proof that our system can run with 2012. I know it's backward compatible but I need official proof. Please help me.
Best Answer
A few things you'll want to watch out for:
Changes to memory manager mean some changes to some dynamic management views - https://sqlblog.org/2011/01/08/sql-server-v-next-denali-changes-to-performance-counters
fn_virtualfilestats no longer takes -1 for parameters - https://sqlblog.org/2011/06/28/sql-server-v-next-denali-breaking-change-to-fn_virtualfilestats
you may no longer be able to identify system databases simply by DB_ID between 1and 4 - https://sqlblog.org/2011/07/08/sql-server-v-next-denali-breaking-change-to-system-databases-database_id-db_id
Temp tables now get negative object IDs, so make sure you don't have code that checks for object id > 0 - https://sqlblog.org/2010/11/09/sql-server-v-next-denali-breaking-change-to-temp-tables
sys.dm_exec_sessions has a new column, authenticating_database_id
For an official list (it doesn't include all of the above items, and there may be others that aren't coming to mind):
http://technet.microsoft.com/en-us/library/ms143179(v=SQL.110).aspx
You may also want to check the discontinued features page:
http://technet.microsoft.com/en-us/library/ms144262
And also run the Upgrade Advisor against your instance, this is exactly what it's for:
http://technet.microsoft.com/en-us/library/ms144256.aspx