Проблема с 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 - единственный способ добиться этого.