2017-01-23 4 views
0

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

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, заявление, кажется, работает хорошо. Я что-то пропустил?

ответ

1

попробовать это

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

Спасибо за комментарий. Но мой вопрос больше похож на то, есть ли какая-то проблема с тем, что я написал. Потому что мои псевдонимы, которые я дал, и примеры, данные DBA, кажутся немного похожими ... –

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^