Синтаксис, указанный Microsoft для удаления части столбца в ALTER заявление это
DROP
{
[ CONSTRAINT ]
{
constraint_name
[ WITH
( <drop_clustered_constraint_option> [ ,...n ] )
]
} [ ,...n ]
| COLUMN
{
column_name
} [ ,...n ]
} [ ,...n ]
Обратите внимание, что [, ... n] появляется как после имени столбца, так и в конце всего предложения drop. Это означает, что есть два способа удалить несколько столбцов. Вы можете сделать это:
ALTER TABLE TableName
DROP COLUMN Column1, Column2, Column3
или это
ALTER TABLE TableName
DROP
COLUMN Column1,
COLUMN Column2,
COLUMN Column3
Этот второй синтаксис полезен, если вы хотите объединить удаление столбца с удалением ограничения:
ALTER TBALE TableName
DROP
CONSTRAINT DF_TableName_Column1,
COLUMN Column1;
При отбрасывании столбцов SQL Sever не восстанавливает пространство, занимаемое удаленными столбцами. Для типов данных, которые хранятся в строках (например, int), он может даже занимать место в новых строках, добавленных после оператора alter. Чтобы обойти это, вам нужно создать кластерный индекс для таблицы или перестроить кластерный индекс, если он уже есть. Перестроение индекса может быть выполнено с помощью команды REBUILD после изменения таблицы. Но имейте в виду, что на очень больших столах это может быть медленным. Например:
ALTER TABLE Test
REBUILD;
person
Martin Brown
schedule
28.01.2015