La meilleure réponse à cette question est un peu courte, mais regardez les articles en ligne des livres qui parlent des fonctionnalités qui doivent être supprimées dans les futures versions et qui ne sont plus là dans diverses versions.
Par exemple .. Dans SQL Server 2008, la syntaxe de jointure externe gauche "à l'ancienne" ( WHERE Table2.col1 *= Table1.Col1
) est répertoriée comme obsolète (là mais en voie de disparition dans une future version) et elle a finalement disparu dans SQL Server 2012. Donc, si vous gardiez cette syntaxe en 2008, cela fonctionnerait, mais nécessiterait du travail après la mise à niveau vers SQL 2012 ou supérieur ou vous auriez un échec.
Pour commencer, consultez ces liens qui vous mèneront aux articles qui décrivent les fonctionnalités qui ne sont plus prises en charge dans la version répertoriée et quelles fonctionnalités doivent être supprimées à l'avenir .. Recherchez-les ensuite dans votre code .. I dirait également que vous voudrez peut-être envisager une compatibilité future au-delà de SQL Server 2012 si vous attendez plus de 3 ans. Par exemple, les champs TEXT fonctionneront toujours dans SQL Server 2012, mais ils ne fonctionneront probablement pas dans la version après SQL Server 2012 selon les liens ci-dessous.
Liste des fonctionnalités obsolètes de SQL Server 2012 Liste
des fonctionnalités obsolètes de SQL Server 2008R2
Vous devez également vous assurer que vous laissez votre base de données s'exécuter en mode de compatibilité SQL Server 2008 après votre mise à niveau vers 2008 et vous assurer qu'elle fonctionne bien en 2008 et pour vous permettre de la mettre à niveau vers 2012 - Bases de données SQL Server 2000 ou bases de données fonctionnant dans SQL Server Le mode de compatibilité 2000 ne migrera pas vers SQL Server 2012.
J'ai également écrit une réponse qui parle longuement des mises à niveau et des migrations et des étapes générales de préparation.