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


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:



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).


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.