Implicaciones de cambiar el modo de compatibilidad en SQL Server de 100 a 110

16

Tengo una base de datos Mydatabasecreada en SQL Server 2008 R2. He actualizado a SQL Server 2012.

Estaba tratando de ejecutar la consulta a continuación para calcular el percentil

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

pero recibo un error que indica que

Mensaje 10762, Nivel 15, Estado 1, Línea 1
La función PERCENTILE_CONT no está permitida en el modo de compatibilidad actual. Solo está permitido en el modo 110 o superior.

  1. ¿Puedo cambiar el modo de compatibilidad a 110?
  2. ¿Cuáles son las implicaciones de cambiar el modo de compatibilidad de 100 a 110?

Por favor aconséjame

Shiva
fuente
OMFG! "SQL Server 2014 incluye mejoras sustanciales en el componente que crea y optimiza los planes de consulta". Pero `no me he beneficiado de eso en los últimos 3 años porque compatibility_leveltodavía estoy en 100. ¡Fantástico!
Simon_Weaver

Respuestas:

9

Echa un vistazo al siguiente enlace:

ALTERAR BASE DE DATOS Nivel de compatibilidad

Desplácese hacia abajo y verá la sección "Diferencias entre los niveles de compatibilidad más bajos y el nivel 110" e identifique si alguno de estos elementos lo afectará o no. Si no, simplemente cambie el nivel a 110.

esteoleario
fuente
3
Eso llevaría horas. Hay una herramienta que hace esto por usted, ahora: Asistente de migración de datos de
MGOwen
5

También está el Asesor de actualizaciones que lo ayudará a identificar cualquier cosa en su base de datos que pueda causar problemas al cambiar el nivel de compatibilidad (básicamente una forma semiautomática de hacer lo que @steoleary ha sugerido, lo que reduce las posibilidades de que se pierda algo).

Steve Pettifer
fuente
El Asistente de migración de datos ahora ha reemplazado al Asesor de actualizaciones, aparentemente.
MGOwen
Sí, esto fue para 2012, así que no me sorprende que hayan cambiado el nombre y / o la funcionalidad. He estado fuera del ciclo de actualización de bases de datos durante bastante tiempo, ya que rara vez tengo mucho que ver con las bases de datos en estos días, ¡ni siquiera estoy seguro de cuál es la última versión!
Steve Pettifer
3

El Asistente de migración de datos de Microsoft lo ayuda a encontrar rápida y fácilmente cualquier problema que pueda prevenir o complicar una actualización.

Si no encuentra problemas (o si los encuentra, y los ha solucionado), simplemente puede actualizar ejecutando estos comandos, uno a la vez:

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
fuente