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

Shiva
fonte
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:

9

Dê uma olhada no seguinte link:

Nível de compatibilidade ALTER DATABASE

Role para baixo e você verá a seção "Diferenças entre níveis mais baixos de compatibilidade e nível 110" e identifique se algum desses itens o afetará ou não. Caso contrário, basta alterar o nível para 110.

steoleary
fonte
3
Isso levaria horas. Há uma ferramenta que faz isso para você, agora: Microsoft Assistente de Migração de Dados
MGOwen
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).

Steve Pettifer
fonte
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
MGOwen
fonte