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

16

Ich habe eine Datenbank Mydatabasein SQL Server 2008 R2 erstellt. Ich habe auf SQL Server 2012 aktualisiert.

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 erhalte einen Fehler, der das angibt

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

  1. Kann ich den Kompatibilitätsmodus auf 110 ändern?
  2. Was bedeutet es, den Kompatibilitätsmodus von 100 auf 110 zu ändern?

Bitte um Rat

Shiva
quelle
OMFG! "SQL Server 2014 enthält wesentliche Verbesserungen an der Komponente, mit der Abfragepläne erstellt und optimiert werden." Aber ich habe in den letzten 3 Jahren überhaupt nicht davon profitiert, weil ich compatibility_levelimmer noch bei 100 bin . Fantastisch!
Simon_Weaver

Antworten:

9

Schauen Sie sich den folgenden Link an:

ALTER DATABASE-Kompatibilitätsstufe

Scrollen Sie nach unten und Sie werden den Abschnitt "Unterschiede zwischen niedrigeren Kompatibilitätsstufen und Stufe 110" sehen und feststellen, ob sich eines dieser Elemente auf Sie auswirkt oder nicht. Wenn nicht, ändern Sie einfach die Stufe auf 110.

steolear
quelle
3
Das würde Stunden dauern. Es gibt ein Tool, das dies jetzt für Sie erledigt: Microsoft Data Migration Assistant
MGOwen
5

Es gibt auch den Upgrade Advisor, der Ihnen hilft, alles in Ihrer Datenbank zu identifizieren, was Probleme beim Ändern der Kompatibilitätsstufe verursachen könnte (im Grunde genommen eine halbautomatische Methode, um die Vorschläge von @steoleary zu erfüllen, die die Wahrscheinlichkeit verringert, dass Sie etwas verpassen).

Steve Pettifer
quelle
Der Data Migration Assistant hat jetzt anscheinend den Upgrade Advisor ersetzt.
MGOwen
Ja, das war für 2012, also nicht überrascht, dass sie den Namen und / oder die Funktionalität geändert haben. Ich bin schon seit einiger Zeit nicht mehr am Upgraden von DBs interessiert, da ich heutzutage selten viel mit DBs zu tun habe - ich bin mir nicht einmal sicher, welche Version die neueste ist!
Steve Pettifer
3

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

Wenn keine Probleme gefunden werden (oder wenn dies der Fall ist und Sie sie behoben haben), können Sie einfach ein Upgrade durchführen, indem Sie nacheinander die folgenden Befehle 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
MGOwen
quelle