Ajuster le niveau de compatibilité d'une base peut être utile pour disposer :
- de stabilité (quand on baisse le niveau)
- ou des dernières nouveautés (quand on monte le niveau).
Dernièrement, j'ai restauré une base sur un serveur SQL dernière génération et je me suis aperçu que la compatibilité de la base restaurée ne me permettait pas d'utiliser certaines "nouvelles fonctions" (Comme STRING_SPLIT par exemple) !
Ajuster la compatibilité, n'est pas trop sorcier, le plus complexe est de s'assurer que tout fonctionne dans l'applicatif associé (La je peux rien pour vous aider), mais aussi trouver la bonne valeur du niveau ajustable en fonction de la version de son serveur SQL.
Ok SQL Server est super bien documenté, en cherchant un peu on arrive :
- A savoir sur quelle version du serveur SQL on est
- A trouver le niveau de compatibilité associé
- A exécuter la bonne requête.
DECLARE @ModelLevel INT, @CurrentLevel INT;
SELECT @ModelLevel = [compatibility_level] FROM sys.databases WHERE name = 'model';
SELECT @CurrentLevel = [compatibility_level] FROM sys.databases WHERE name = DB_NAME();
IF (@CurrentLevel < @ModelLevel)
BEGIN
DECLARE @sql VARCHAR(MAX);
SET @sql = 'ALTER DATABASE ' + DB_NAME() + ' SET COMPATIBILITY_LEVEL = ' + FORMAT(@ModelLevel, '0') + ';';
EXEC (@sql);
END
En gros, on utilise le niveau de compatibilité de la base "Model" pour ajuster le niveau de la base en cours. La base "Model" étant toujours au meilleur niveau associé à notre serveur SQL (si on y a pas déjà touché !!), en faisant cela on est sûr de prendre le bon niveau.
Bon c'est peut être pas super utile, mais à moi cela me sert assez souvent !
Enjoy ?
Aucun commentaire:
Enregistrer un commentaire