it-swarm.com.de

Auswirkungen der Änderung des Kompatibilitätsmodus in SQL Server von 100 auf 110

Ich habe eine Datenbank Mydatabase in SQL Server 2008 R2 erstellt. Ich habe ein Upgrade auf SQL Server 2012 durchgeführt.

Ich habe versucht, die folgende Abfrage auszuführen, um das Perzentil zu berechnen

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

aber ich bekomme eine Fehlermeldung, die das angibt

Nachricht 10762, Ebene 15, Status 1, Zeile 1
Die Funktion PERCENTILE_CONT ist im aktuellen Kompatibilitätsmodus nicht zulässig. Es ist nur im 110-Modus oder höher zulässig.

  1. Kann ich den Kompatibilitätsmodus auf 110 ändern?
  2. Welche Auswirkungen hat die Änderung des Kompatibilitätsmodus von 100 auf 110?

Bitte beraten

17
Shiva

Schauen Sie sich den folgenden Link an:

ALTER DATABASE-Kompatibilitätsstufe

Scrollen Sie nach unten und Sie sehen den Abschnitt "Unterschiede zwischen niedrigeren Kompatibilitätsstufen und Stufe 110" und können feststellen, ob eines dieser Elemente Sie betrifft oder nicht. Wenn nicht, ändern Sie einfach den Pegel auf 110.

9
steoleary

Es gibt auch den pgrade Advisor , mit dem Sie alles in Ihrer Datenbank identifizieren können, was beim Ändern der Kompatibilitätsstufe zu Problemen führen kann (im Grunde eine halbautomatische Methode, um das zu tun, was @steoleary vorgeschlagen hat und die Wahrscheinlichkeit verringert du vermisst etwas).

5
Steve Pettifer

Microsoft Data Migration Assistant hilft Ihnen dabei, Probleme schnell und einfach zu finden, die ein Upgrade verhindern oder erschweren könnten.

Wenn keine Probleme auftreten (oder wenn dies der Fall ist und Sie sie behoben haben), können Sie einfach ein Upgrade durchführen, indem Sie diese Befehle einzeln ausführen:

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
5
MGOwen