Как изменить порядок столбцов в таблице с помощью SQL-запроса в SQL Server 2005? - PullRequest
86 голосов
/ 22 октября 2009

Как изменить порядок столбцов в таблице с помощью SQL-запроса в SQL Server 2005?

Я хочу изменить порядок столбцов в таблице с помощью SQL-запроса.

Ответы [ 20 ]

0 голосов
/ 25 июля 2015

Вы можете изменить это с помощью SQL-запроса. Вот SQL-запрос для изменения последовательности столбцов.

ALTER TABLE table name 
CHANGE COLUMN `column1` `column1` INT(11) NOT NULL COMMENT '' AFTER `column2`;
0 голосов
/ 24 ноября 2017

Если столбцы, которые необходимо переупорядочить, были недавно созданы и являются пустыми, столбцы можно удалять и повторно добавлять в правильном порядке.

Это случилось со мной, вручную расширив базу данных для добавления новых функций, и я пропустил столбец, и когда я его добавил, последовательность была неправильной.

После того, как я не нашел здесь адекватного решения, я просто исправил таблицу с помощью команд следующего типа.

ALTER TABLE  tablename  DROP COLUMN  columnname; 
ALTER TABLE  tablename  ADD columnname columntype;

Примечание: делайте это, только если у вас нет данных в столбцах, которые вы отбрасываете.

Люди говорят, что порядок столбцов не имеет значения. Я регулярно использую SQL Server Management Studio «генерировать сценарии» для создания текстовой версии схемы базы данных. Для эффективного управления версиями этих сценариев (git) и их сравнения (WinMerge) необходимо, чтобы выходные данные из совместимых баз данных были одинаковыми, а выделенные различия являются подлинными различиями в базах данных.

Порядок столбцов имеет значение; но только для некоторых людей, не для всех!

0 голосов
/ 16 июня 2016

Пример: изменение позиции field_priority после field_price в статусе таблицы.

ALTER TABLE `status` CHANGE `priority` `priority` INT(11) NULL DEFAULT NULL AFTER `price`;
0 голосов
/ 01 июня 2015

В конце концов, вы просто не можете сделать это в MS SQL. Я недавно создал таблицы на ходу (запуск приложения), используя хранимую процедуру, которая читает из таблицы поиска. Когда я создал представление, которое объединило их с другой таблицей, которую я ранее создал вручную (та же схема, с данными), это не удалось - просто потому, что я использовал '' Select * UNION Select * 'для представления. В то же время, если я использую только те, которые созданы с помощью хранимой процедуры, я успешен.

В заключение: если есть какое-либо приложение, которое зависит от порядка столбцов, это действительно не хорошее программирование и наверняка создаст проблемы в будущем. Столбцы должны «чувствовать себя свободно» в любом месте и использоваться для любого процесса обработки данных (INSERT, UPDATE, SELECT).

0 голосов
/ 23 марта 2016

изменить имя таблицы сначала изменить имя столбца int (5); приведет колонку к первому изменить имя таблицы изменить имя столбца int (5) после (имя таблицы);

0 голосов
/ 22 октября 2009

Используйте

SELECT * FROM TABLE1

, который отображает порядок столбцов таблицы по умолчанию.

Если вы хотите изменить порядок столбцов.

Укажите имя столбца для отображения соответственно

SELECT COLUMN1, COLUMN5, COLUMN4, COLUMN3, COULMN2 FROM TABLE1
0 голосов
/ 04 февраля 2019

Для того, чтобы иметь определенный порядок столбцов Вам нужно выбрать столбец за столбцом в том порядке, который Вы хотите. Порядок выбора определяет порядок упорядочения столбцов при выводе.

0 голосов
/ 01 июня 2015

Вы можете использовать индексирование. После индексации, если выбрать * из XXXX, результаты должны соответствовать индексу, но только набор результатов .. не структура таблицы

0 голосов
/ 06 февраля 2019

Попробуйте эту команду:

alter table students modify age int(5) first; 

Это изменит позицию возраста на первую позицию.

0 голосов
/ 22 сентября 2015

Вы можете достичь этого с помощью следующих шагов:

  1. удалить все внешние ключи и первичный ключ исходной таблицы.

  2. переименовать исходную таблицу.

  3. с помощью CTAS создайте исходную таблицу в нужном вам порядке.

  4. удалить старый стол.

  5. применить все ограничения обратно к исходной таблице

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...