Добавить столбец в определенную позицию на сервере MSSQL
ALTER TABLE Log ADD log_id bigint IDENTITY BEFORE cust_id_fk
Приведенный выше код добавляет новый столбец в последнюю позицию. Я хочу, чтобы его добавили в первую позицию. Также я хочу сделать его основным ключом.
Ответы
Ответ 1
Вам нужно будет отбросить таблицу и воссоздать ее со столбцами в правильном порядке. Если вы внесете изменения таблицы в SSMS, тогда он может сгенерировать изменение script для вас, которое вы могли бы использовать для развертывания изменения на производственном сервере.
Ответ 2
Даже если вопрос старый, потребуется более точное описание Management Studio.
Вы можете создать столбец вручную или с помощью Management Studio. Но Management Studio потребует воссоздать таблицу и приведет к тайм-ауту, если у вас слишком много данных в нем, избегайте, если таблица не светится.
Чтобы изменить порядок столбцов, вам просто нужно переместить их в Management Studio. Это не должно требовать (как правило, исключений), что Management Studio воссоздает таблицу, поскольку она скорее всего изменит координацию столбцов в определениях таблиц.
Я делал это так много раз с таблицами, что я не мог добавить столбцы с графическим интерфейсом из-за данных в них. Затем перемещали столбцы с помощью графического интерфейса Management Studio и просто сохраняли их.
Вы перейдете от гарантированного времени до нескольких секунд ожидания.
Ответ 3
В MSSMS выберите таблицу в проводнике объектов. Щелкните правой кнопкой мыши и выберите вариант.
Это приведет к новой вкладке, где вы можете перетащить столбцы в новый порядок по умолчанию.
Сохранить и престо! Готово.
Ответ 4
Шаги:
- Переименуйте исходную таблицу в tablename_temp
- создать новую таблицу, содержащую новый столбец
- вставить в tablename select * from tablename_temp
- воссоздать внешние ключи и другое ограничение для новой таблицы
Ответ 5
Вам нужно создать другую таблицу и скопировать данные. Но посмотрите на "порядковое положение" и попробуйте обновить его?
SELECT
ORDINAL_POSITION
,COLUMN_NAME
,DATA_TYPE
,CHARACTER_MAXIMUM_LENGTH
,IS_NULLABLE
,COLUMN_DEFAULT
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Product'
ORDER BY
ORDINAL_POSITION ASC;
Первичный ключ - это еще один вопрос, для которого вы можете найти множество ответов.