Удаление столбцов из результатов запроса (визуальные инструменты для баз данных)
Если столбец используется в запросе SELECT, однако его отображение в результирующем наборе нежелательно (то есть если его не следует выводить в списке выборки), столбец можно убрать из вывода запроса. После удаления столбца из вывода запроса его все еще можно использовать в условиях поиска или как поле сортировки.
Чтобы получить сведения о полном удалении столбца из запроса, см. раздел Удаление столбцов из запросов (визуальные инструменты для баз данных).
Удаление столбца из вывода запроса
- На панели критериевснимите флажок в столбце Выход для столбца данных, который необходимо удалить. (Если понадобится вернуть столбец в вывод запроса, можно снова установить флажок в столбце Вывод .) -или-
- Удалите столбец из списка вывода на панели SQL.
Удаление столбцов из таблицы
В этой статье описывается удаление столбцов таблицы в 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
- Обозреватель объектов
- конструктор таблиц
Обратная связь
Были ли сведения на этой странице полезными?
Удаление столбца из таблицы
ALTER TABLE TABLE_NAME DROP COLUMN_NAME Не катит.
Не хватает слова «COLUMN», запрос должен выглядеть так:
alter table 'table_name' drop column 'column_name'
Отслеживать
user177221
ответ дан 17 авг 2011 в 10:39
1,382 12 12 серебряных знаков 22 22 бронзовых знака
Гм. А что оно это слово дает? Разве тут может быть неопределенность? Если надо уронить индекс, добавляем индекс, если всю колонку — просто название колонки. Я не прав? Необязательное слово COLUMN представляет собой «белый шум» и может быть опущено. mysql.ru/docs/man/ALTER_TABLE.html По крайней мере, если речь идет о Mysql
17 авг 2011 в 10:41
Если при удалении столбца не указать ключевое слово «column» то SQL Server решит что мы хотим удалить constraint. Автор вопроса спрашивал конкретно про SQL Server.
Избегая ошибок: как безопасно удалять столбец из SQL
Для удаления столбца, на который указывают ссылки, вначале найдите и устраните все зависимости: ограничения и индексы.
Скопировать код
DECLARE @Table NVARCHAR(256) = N'НазваниеТаблицы'; DECLARE @Column NVARCHAR(256) = N'НазваниеСтолбца'; -- Формируем команды для удаления ограничений SELECT 'ALTER TABLE ' + QUOTENAME(OBJECT_SCHEMA_NAME(fk.parent_object_id)) + ' DROP CONSTRAINT ' + QUOTENAME(fk.name) + ';' AS DropCommand FROM sys.foreign_keys AS fk INNER JOIN sys.foreign_key_columns AS fkc ON fk.object_id = fkc.constraint_object_id INNER JOIN sys.columns AS c ON fkc.parent_column_id = c.column_id AND fkc.parent_object_id = c.object_id WHERE c.name = @Column AND OBJECT_NAME(fkc.parent_object_id) = @Table; -- Удаляем столбец ALTER TABLE НазваниеТаблицы DROP COLUMN НазваниеСтолбца;
Замените НазваниеТаблицы и НазваниеСтолбца на реальные названия таблицы и столбца. После удаления связанных ограничений вы безопасно сможете удалить столбец. Удостоверьтесь в отсутствии остальных зависимостей, например в индексах, представлениях и хранимых процедурах.
Удаление зависимостей
Перед тем как приступить к удалению столбца с зависимостями, необходимо идентифицировать все существующие связи. Ограничения может быть сложно обнаружить, особенно если они не были явно именованы. Следуйте практике присвоения ограничениям понятных имен, что облегчит их последующее удаление.
Распознание зависимостей в хранимых процедурах и представлениях может оказаться сложным. Используйте Microsoft SQL Server Management Studio или системные представления, чтобы упростить этот процесс.
Мастерская работы с зависимостями с использованием динамического SQL
Динамический SQL может быть полезен при наличии множества связанных ограничений: