Удаление столбцов из таблицы
В этой статье описывается удаление столбцов таблицы в SQL Server с помощью SQL Server Management Studio (SSMS) или Transact-SQL.
При удалении столбца из таблицы удаляется сам столбец и все содержащиеся в нем данные.
ограничения
Нельзя удалить столбец с ограничением CHECK. В первую очередь необходимо удалить ограничение.
Удалить столбец с ограничениями PRIMARY KEY, FOREIGN KEY или другими зависимостями можно только с использованием конструктора таблиц в SSMS. При использовании обозревателя объектов в SSMS или Transact-SQL необходимо сначала удалить все зависимости от столбца.
Разрешения
Требуется разрешение ALTER на таблицу.
Удаление столбцов с помощью обозревателя объектов
Ниже описаны действия по удалению столбцов с помощью обозревателя объектов в SSMS.
- Подключитесь к экземпляру ядра СУБД.
- В обозревателе объектов найдите таблицу, из которой требуется удалить столбцы, и разверните таблицу, чтобы предоставить имена столбцов.
- Щелкните правой кнопкой мыши столбец, который необходимо удалить, и выберите команду Удалить.
- В диалоговом окне Удаление объекта нажмите кнопку ОК.
Если столбец содержит ограничения или другие зависимости, в диалоговом окне «Удалить объект» появится сообщение об ошибке. Чтобы устранить проблему, удалите упомянутые ограничения.
Удаление столбцов с помощью конструктора таблиц
Ниже описаны действия по удалению столбцов с помощью конструктора таблиц в SSMS.
- В обозревателе объектовщелкните правой кнопкой мыши таблицу, из которой необходимо удалить столбцы, и выберите пункт Конструктор.
- Щелкните правой кнопкой мыши столбец, который надо удалить, и выберите из контекстного меню пункт Удалить столбец .
- Если столбец участвует в связи (FOREIGN KEY или PRIMARY KEY), то будет выдано сообщение с запросом на подтверждение удаления выбранных столбцов и их связей. Выберите Да.
Удаление столбцов с помощью Transact-SQL
Вы можете удалять столбцы с помощью Transact-SQL в SSMS, Azure Data Studio или средств командной строки, таких как служебная программа sqlcmd.
В следующем примере демонстрируется удаление столбца.
ALTER TABLE dbo.doc_exb DROP COLUMN column_b; GO
Если столбец содержит ограничения или другие зависимости, то будет возвращено сообщение об ошибке. Чтобы устранить проблему, удалите упомянутые ограничения.
Дополнительные примеры см. в статье ALTER TABLE (Transact-SQL).
Далее
Дополнительные сведения об изменении таблиц, общих задачах и связанных с ними инструментах см. в следующих статьях:
- Инструкция ALTER TABLE (Transact-SQL)
- Среда SQL Server Management Studio
- Azure Data Studio
- Обозреватель объектов
- конструктор таблиц
Справочник по MySQL : SQL : Изменение свойств таблицы : Удаление столбцов (ALTER TABLE DROP)
Удаление столбца можно сделать при помощи следующей конструкции:
ALTER TABLE table_name DROP field_name
table_name — имя таблицы, в которой будет удален столбец; field_name — имя удаляемого столбца.
$sql="ALTER TABLE search DROP id_num"; mysql_query($sql);
Если мы хотим удалить сразу несколько полей, то надо через запятую повторить DROP field_name для каждого столбца:
$sql="ALTER TABLE search DROP id_1, DROP id_2, DROP id_3"; mysql_query($sql);
Как удалить столбец в mysql
Если таблица уже была ранее создана, и ее необходимо изменить, то для этого применяется команда ALTER TABLE . Ее сокращенный формальный синтаксис:
ALTER TABLE название_таблицы
Вообще данная команда поддерживает гораздо больше опций и возможностей. Все их можно посмотреть в документации. Рассмотрим лишь основные сценарии, с которыми мы можем столкнуться.
Добавление нового столбца
Добавим в таблицу Customers новый столбец Address:
ALTER TABLE Customers ADD Address VARCHAR(50) NULL;
В данном случае столбец Address имеет тип VARCHAR и для него определен атрибут NULL.
Удаление столбца
Удалим столбец Address из таблицы Customers:
ALTER TABLE Customers DROP COLUMN Address;
Изменение значения по умолчанию
Установим в таблице Customers для столбца Age значение по умолчанию 22:
ALTER TABLE Customers ALTER COLUMN Age SET DEFAULT 22;
Изменение типа столбца
Изменим в таблице Customers тип данных у столбца FirstName на CHAR(100) и установим для него атрибут NULL :
ALTER TABLE Customers MODIFY COLUMN FirstName CHAR(100) NULL;
Добавление и удаление внешнего ключа
Пусть изначально в базе данных будут добавлены две таблицы, никак не связанные:
CREATE TABLE Customers ( Id INT PRIMARY KEY AUTO_INCREMENT, Age INT, FirstName VARCHAR(20) NOT NULL, LastName VARCHAR(20) NOT NULL ); CREATE TABLE Orders ( Id INT PRIMARY KEY AUTO_INCREMENT, CustomerId INT, CreatedAt Date );
Добавим ограничение внешнего ключа к столбцу CustomerId таблицы Orders:
ALTER TABLE Orders ADD FOREIGN KEY(CustomerId) REFERENCES Customers(Id);
При добавлении ограничений мы можем указать для них имя, используя оператор CONSTRAINT , после которого указывается имя ограничения:
ALTER TABLE Orders ADD CONSTRAINT orders_customers_fk FOREIGN KEY(CustomerId) REFERENCES Customers(Id);
В данном случае ограничение внешнего ключа называется orders_customers_fk. Затем по этому имени мы можем удалить ограничение:
ALTER TABLE Orders DROP FOREIGN KEY orders_customers_fk;
Добавление и удаление первичного ключа
Добавим в таблицу Products первичный ключ:
CREATE TABLE Products ( Id INT, Model VARCHAR(20) ); ALTER TABLE Products ADD PRIMARY KEY (Id);
Теперь удалим первичный ключ:
ALTER TABLE Products DROP PRIMARY KEY;
Как удалить столбец из таблицы в MySQL
Обратите внимание, что ключевое слово COLUMN не является обязательным, так как MySQL будет принимать только DROP IsDeleted . Кроме того, чтобы удалить несколько столбцов, вы должны разделить их запятыми и включить DROP для каждого из них.
ALTER TABLE tbl_Country DROP COLUMN IsDeleted, DROP COLUMN CountryName;
Это позволяет вам DROP , ADD и ALTER несколько столбцов в одной таблице в одном выражении. Из справочного руководства MySQL:
Вы можете выдать несколько предложений ADD , ALTER , DROP и CHANGE в одном выражении ALTER TABLE , разделенных запятыми. Это расширение MySQL для стандартного SQL, которое разрешает только одно из каждого предложения в выражении ALTER TABLE .