Изменен ли порядок возвращаемых столбцов для выбора * для SQL Server 2012?

Изменен ли порядок возвращаемых столбцов для выбора * для SQL Server 2012?

Например, для таблицы t с столбцами a1, a2, a3, для которых select * from t возвращал столбцы в порядке a1, a2, a3 для версий SQL Server до 2012 года и после миграции к 2012 году заказ изменился на другой порядок, например, a3, a1, a2.

Кто-нибудь еще заметил это?

Почему это изменилось?

Мне лично интересно, почему это произошло. Может быть, проблема с переходом на SS 2012?

(Нет, мое приложение не зависит от упорядочения столбцов, и я знаю, что я должен указать столбцы, которые мне нужны, в том порядке, в котором они нужны, вместо использования select * ).

2
nl ja de
Я не видел такого поведения. Как база данных переходила от некоторых до версии на SQL Server 2012? Вы обновили систему, выполнили резервное копирование/восстановление, отсоединение/подключение, использование мастера импорта/экспорта данных, SSIS, сторонний инструмент и т. Д.? Какова была версия ранее?
добавлено автор Aaron Bertrand, источник

1 ответы

Это зависит от значения столбца ordinal_position каждого столбца в таблице information_schema.columns .

Каждый столбец имеет запись в этой таблице с именем таблицы и порядковой позицией. Попробуй это:

SELECT column_name, ordinal_position
FROM information_schema.columns 
WHERE table_name = 'table name';

это должно возвращать то же, что и в предыдущем примере.

3
добавлено
@AaronBertrand Спасибо за эту информацию. Не знал этого.
добавлено автор Mahmoud Gamal, источник
Правильное место IMHO - это sys.columns . INFORMATION_SCHEMA просто имитирует часть информации, но не все это ... sqlblog.com/blogs/aaron_bertrand/archive/2011/11/03/…
добавлено автор Aaron Bertrand, источник
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)