Проблема с ORDER By при попытке перехода с SQL Server 2012 на 2016

Я пытаюсь перейти с SQL Server 2012 на 2016 год и запустил помощник по миграции базы данных Microsoft для того же. В помощнике по миграции я просто пытаюсь рассказать о критических изменениях. Одно из переломных изменений показывает следующее.

select 
Name1 as 'Name',
Age1 as 'Age' from Table 
order by 'Name'

Следующее объяснение подходит для этого.

Постоянные выражения допускаются (и игнорируются) в предложении ORDER BY, если для режима совместимости базы данных установлено значение 80 или более раннее. Однако эти выражения в предложении ORDER BY приведут к сбою оператора, если для режима совместимости базы данных задано значение 90 или выше.

Вот пример таких проблемных утверждений:

SELECT * FROM Production.Product
ORDER BY CASE WHEN  1=2 THEN 3 ELSE 2 END

Тем не менее, после создания той же схемы и запуска того же кода в SQL Server 2016, оператор, кажется, работает нормально. Я что-то упускаю?

2 ответа

Попробуй это

select 
Name1 as Name,
Age1 as Age from Table 
order by Name

Я думаю, вместо того, чтобы оценивать выражения, если помощник по миграции видит подсказку порядка в предложении, он просто выдает предупреждение. Грязный, я знаю, но метод @Esperento57 - единственный способ добиться этого.

Другие вопросы по тегам