Удаление столбцов в 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, если есть отношения, они должны быть удалены первыми.

  • Поместите таблицу в представление "Дизайн" (щелкните правой кнопкой мыши по таблице) следующим образом:

введите описание изображения здесь

  1. Щелкните правой кнопкой мыши по столбцу в представлении "Дизайн таблицы" и нажмите "Удалить Колонка "

введите описание изображения здесь

В этот момент, если есть какие-либо отношения, которые также необходимо удалить, он спросит вас, хотите ли вы их удалить.