Implications du changement du mode de compatibilité dans SQL Server de 100 à 110


16

J'ai une base de données Mydatabasecréée dans SQL Server 2008 R2. J'ai mis à niveau vers SQL Server 2012.

J'essayais d'exécuter la requête ci-dessous pour calculer le centile

select Distinct [KEY],PERCENTILE_CONT(0.25)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q1,PERCENTILE_CONT(0.50)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q2,
PERCENTILE_CONT(0.75)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q3,
PERCENTILE_CONT(1)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q4
from Mydatabase

mais je reçois une erreur indiquant que

Msg 10762, niveau 15, état 1, ligne 1
La fonction PERCENTILE_CONT n'est pas autorisée dans le mode de compatibilité actuel. Il n'est autorisé qu'en mode 110 ou supérieur.

  1. Puis-je changer le mode de compatibilité en 110?
  2. Quelles sont les implications du changement du mode de compatibilité de 100 à 110?

Veuillez conseiller


OMFG! "SQL Server 2014 inclut des améliorations substantielles du composant qui crée et optimise les plans de requête." Mais je n'en profite pas du tout depuis 3 ans car mon compatibility_levelest toujours à 100 ans. Fantastique!
Simon_Weaver

Réponses:



5

Il existe également le Conseiller de mise à niveau qui vous aidera à identifier tout élément de votre base de données qui pourrait causer des problèmes lors de la modification du niveau de compatibilité (essentiellement une manière semi-automatisée de faire ce que @steoleary a suggéré, ce qui réduit les chances que vous ne manquiez de rien).


Apparemment, l' assistant de migration des données a remplacé le conseiller de mise à niveau.
MGOwen

Oui, c'était pour 2012, donc pas surpris qu'ils aient changé le nom et / ou la fonctionnalité. Je ne suis pas au courant de la mise à niveau des bases de données depuis un certain temps, car j'ai rarement grand-chose à voir avec les bases de données de nos jours - je ne sais même pas quelle est la dernière version!
Steve Pettifer

3

L'Assistant Migration de données Microsoft vous aide à trouver rapidement et facilement tout problème susceptible d'empêcher ou de compliquer une mise à niveau.

S'il ne détecte aucun problème (ou s'il le fait, et que vous y avez résolu), vous pouvez simplement mettre à niveau en exécutant ces commandes, une à la fois:

USE master
go
ALTER DATABASE [yourdatabasesname]  SET SINGLE_USER     WITH ROLLBACK IMMEDIATE
go
ALTER DATABASE [yourdatabasesname]  SET COMPATIBILITY_LEVEL = 110    -- 130=SQL Server 2016, 120=2014, 110=2012
go
ALTER DATABASE [yourdatabasesname]  SET MULTI_USER
go
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.