В нашем приложении есть две таблицы, обе из которых имеют столбец ShowOrder
. Мы используем NHibernate в нашем приложении, а с помощью HQL мы соединяем эти две таблицы, упорядоченные по ShowOrder
первой таблицы и второй таблицы соответственно.
Вот упрощенная версия моего запроса:
SELECT pr.Id as Id,pr.Title as Title, pr.ShowOrder as ShowOrder
FROM Process pr
INNER JOIN ProcessGroup prg ON pr.GroupId=prg.Id
ORDER BY prg.ShowOrder,pr.ShowOrder
В целом наше приложение работает без проблем. Но у нас есть старое приложение и процедура преобразования для преобразования его базы данных в нашу новую базу данных приложения.
Всякий раз, когда мы конвертируем старую базу данных в нашу новую базу данных, возникает ошибка, когда сервер SQL хочет выполнить вышеуказанный запрос. Исключение говорит:
Столбец указан более одного раза в порядке списка
Если мы выберем pr.ShowOrder
без псевдонима, то все в порядке.
Кажется, что если в списке выбора есть псевдоним ShowOrder
, SQL Server игнорирует псевдонимы таблиц и предполагает, что pr.ShowOrder
и prg.ShowOrder
одинаковы.