Последствия изменения режима совместимости в SQL Server с 100 на 110

16

У меня есть база данных, Mydatabaseсозданная в SQL Server 2008 R2. Я обновился до SQL Server 2012.

Я пытался выполнить запрос ниже, чтобы рассчитать процентиль

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

но я получаю сообщение о том, что

Сообщение 10762, уровень 15, состояние 1, строка 1
Функция PERCENTILE_CONT не разрешена в текущем режиме совместимости. Это разрешено только в режиме 110 или выше.

  1. Могу ли я изменить режим совместимости на 110?
  2. Каковы последствия изменения режима совместимости со 100 на 110?

Пожалуйста посоветуй

Шива
источник
OMFG! «SQL Server 2014 включает существенные улучшения компонента, который создает и оптимизирует планы запросов». Но `я не получал от этого никакой выгоды в течение последних 3 лет, потому что у меня compatibility_levelвсе еще 100. Фантастика!
Simon_Weaver

Ответы:

9

Посмотрите на следующую ссылку:

Уровень совместимости ALTER DATABASE

Прокрутите вниз, и вы увидите раздел «Различия между более низкими уровнями совместимости и уровнем 110» и определите, повлияет ли какой-либо из этих пунктов на вас или нет. Если нет, то просто измените уровень на 110.

steoleary
источник
3
Это займет часы. Теперь есть инструмент, который делает это за вас: Microsoft Data Migration Assistant
MGOwen
5

Существует также помощник по обновлению, который поможет вам определить что-либо в вашей БД, что может вызвать проблемы при изменении уровня совместимости (в основном это полуавтоматический способ сделать то, что предложил @steoleary, который уменьшает вероятность того, что вы что-то пропустили).

Стив Петтифер
источник
Помощник по миграции данных теперь, по-видимому, заменил помощника по обновлению.
MGOwen
Да, это было в 2012 году, так что не удивляйтесь, что они изменили название и / или функциональность. Я не спешил с обновлением БД в течение достаточно долгого времени, так как в наши дни я редко сталкиваюсь с БД - даже не знаю, какая последняя версия!
Стив Петтифер
3

Microsoft Data Migration Assistant поможет вам быстро и легко найти любые проблемы, которые могут помешать или усложнить обновление.

Если он не находит проблем (или если он есть, и вы их устраняли), вы можете просто обновить, выполнив эти команды, по одной:

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
источник