J'ai une base de données Mydatabase
créé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.
- Puis-je changer le mode de compatibilité en 110?
- Quelles sont les implications du changement du mode de compatibilité de 100 à 110?
Veuillez conseiller
compatibility_level
est toujours à 100 ans. Fantastique!Réponses:
Jetez un œil au lien suivant:
Niveau de compatibilité ALTER DATABASE
Faites défiler vers le bas et vous verrez la section "Différences entre les niveaux de compatibilité inférieurs et le niveau 110" et identifiez si l'un de ces éléments vous affectera ou non. Sinon, changez simplement le niveau à 110.
la source
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).
la source
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:
la source