Implicações da alteração do modo de compatibilidade no SQL Server de 100 para 110


16

Eu tenho um banco de dados Mydatabasecriado no SQL Server 2008 R2. Eu atualizei para o SQL Server 2012.

Eu estava tentando executar a consulta abaixo para calcular o 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

mas estou recebendo um erro afirmando que

Msg 10762, Nível 15, Estado 1, Linha 1
A função PERCENTILE_CONT não é permitida no modo de compatibilidade atual. Só é permitido no modo 110 ou superior.

  1. Posso mudar o modo de compatibilidade para 110?
  2. Quais são as implicações da alteração do modo de compatibilidade de 100 para 110?

Conselho por favor


OMFG! "O SQL Server 2014 inclui melhorias substanciais no componente que cria e otimiza os planos de consulta". Mas eu não tenho me beneficiado disso nos últimos 3 anos porque compatibility_levelainda tenho 100 anos. Fantástico!
Simon_Weaver

Respostas:



5

Há também o Supervisor de atualização que o ajudará a identificar qualquer coisa no seu banco de dados que possa causar problemas ao alterar o nível de compatibilidade (basicamente, uma maneira semi-automática de fazer o que o @steoleary sugeriu, o que reduz as chances de você perder alguma coisa).


O Assistente de Migração de Dados agora substituiu o Supervisor de Atualização, aparentemente.
precisa saber é o seguinte

Sim, isso foi para 2012, então não é surpresa que eles mudaram o nome e / ou a funcionalidade. Estou fora do ciclo de atualização de DBs há algum tempo, pois raramente tenho muito a ver com DBs hoje em dia - nem sei ao certo qual é a versão mais recente!
Steve Pettifer

3

O Assistente de Migração de Dados da Microsoft ajuda a encontrar rápida e facilmente quaisquer problemas que possam impedir ou complicar uma atualização.

Se não encontrar problemas (ou se houver, e você os tiver solucionado), você pode simplesmente atualizar executando estes comandos, um de cada 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.