Implicazioni sulla modifica della modalità di compatibilità in SQL Server da 100 a 110


16

Ho un database Mydatabasecreato in SQL Server 2008 R2. Ho eseguito l'aggiornamento a SQL Server 2012.

Stavo cercando di eseguire la query seguente per calcolare il percentile

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

ma sto ricevendo un errore che lo afferma

Messaggio 10762, livello 15, stato 1, riga 1
La funzione PERCENTILE_CONT non è consentita nella modalità di compatibilità corrente. È consentito solo in modalità 110 o superiore.

  1. Posso cambiare la modalità di compatibilità su 110?
  2. Quali sono le implicazioni della modifica della modalità di compatibilità da 100 a 110?

Per favore, consiglio


OMFG! "SQL Server 2014 include miglioramenti sostanziali al componente che crea e ottimizza i piani di query." Ma non ne ho beneficiato affatto negli ultimi 3 anni perché il mio compatibility_levelè ancora a 100. Fantastico!
Simon_Weaver

Risposte:



5

C'è anche Upgrade Advisor che ti aiuterà a identificare qualsiasi cosa nel tuo DB che potrebbe causare problemi quando cambi il livello di compatibilità (in pratica un modo semi-automatico di fare ciò che ha suggerito @steoleary che riduce le possibilità che ti manchi qualcosa).


Apparentemente, Data Migration Assistant ha sostituito Upgrade Advisor.
MGOwen,

Sì, questo è stato per il 2012, quindi non sorprende di aver cambiato il nome e / o la funzionalità. Sono stato fuori dal giro per l'aggiornamento dei DB da un po 'di tempo in quanto raramente ho molto a che fare con i DB in questi giorni - non sono nemmeno sicuro di quale sia l'ultima versione!
Steve Pettifer,

3

Microsoft Data Migration Assistant ti aiuta a trovare rapidamente e facilmente eventuali problemi che potrebbero impedire o complicare un aggiornamento.

Se non rileva problemi (o se lo fa, e li hai risolti) puoi semplicemente eseguire l'aggiornamento eseguendo questi comandi, uno alla volta:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.