Как удалить столбец из существующей таблицы?
Удаление столбцов в MS SQL Server
Ответ 1
Команда, которую вы ищете, это:
alter table tblName drop column columnName
где tblName
- это имя таблицы, а columnName
- это имя столбца, но есть несколько вещей, которые могут возникнуть в первую очередь.
- Если есть какие-либо ссылки по внешнему ключу на столбец, сначала вам нужно сначала избавиться от них.
- Если есть индекс, использующий этот столбец, вам нужно либо избавиться от него, либо настроить его, чтобы не использовать этот столбец.
Имейте в виду, что выполнение этой команды может не всегда быть хорошим. Один из вариантов - подождать время простоя, когда вы можете быть уверены, что никто не будет обращаться к базе данных, переименовать текущую таблицу, а затем использовать create table
и insert into ... select from
для переноса столбцов, которые вы не хотите удалять.
В одном из последних выпусков Oracle на самом деле есть мягкое удаление, которое может просто помечать столбец как неиспользованный, не удаляя его физически. Он имеет тот же эффект, поскольку вы больше не можете ссылаться на него, и там есть команда в строках alter table ... drop unused columns
, которая предназначена для работы в спокойное время, что делает тяжелую работу по ее физическому удалению.
Это имеет преимущество "мгновенного исчезновения" столбцов без перетаскивания производительности базы данных во время занятости.
Ответ 2
ALTER TABLE XXX DROP COLUMN YYY;
Ответ 3
Для больших таблиц это может быть очень медленным. Часто бывает намного быстрее создать новую таблицу, дубликат старой, но с изменениями, и вставить данные. Снимите старую таблицу и переименуйте новую таблицу.
Ответ 4
Это также можно сделать с помощью графического интерфейса SSMS.
Мне нравится этот метод, потому что он предупреждает вас о наличии каких-либо связей в этом столбце и может также автоматически удалять их. Как утверждает PaxDiablo, если есть отношения, они должны быть удалены первыми.
- Поместите таблицу в представление "Дизайн" (щелкните правой кнопкой мыши по таблице) следующим образом:
- Щелкните правой кнопкой мыши по столбцу в представлении "Дизайн таблицы" и нажмите "Удалить Колонка "
В этот момент, если есть какие-либо отношения, которые также необходимо удалить, он спросит вас, хотите ли вы их удалить.