La sintaxis especificada por Microsoft para colocar una parte de columna de una instrucción ALTER es esta
DROP
{
[ CONSTRAINT ]
{
constraint_name
[ WITH
( <drop_clustered_constraint_option> [ ,...n ] )
]
} [ ,...n ]
| COLUMN
{
column_name
} [ ,...n ]
} [ ,...n ]
Observe que el [, ... n] aparece después del nombre de la columna y al final de la cláusula drop completa. Lo que esto significa es que hay dos formas de eliminar varias columnas. Puedes hacer esto:
ALTER TABLE TableName
DROP COLUMN Column1, Column2, Column3
o esto
ALTER TABLE TableName
DROP
COLUMN Column1,
COLUMN Column2,
COLUMN Column3
Esta segunda sintaxis es útil si desea combinar la caída de una columna con la caída de una restricción:
ALTER TBALE TableName
DROP
CONSTRAINT DF_TableName_Column1,
COLUMN Column1;
Al soltar columnas, SQL Sever no reclama el espacio ocupado por las columnas soltadas. Para los tipos de datos que se almacenan en línea en las filas (int, por ejemplo), incluso puede ocupar espacio en las nuevas filas agregadas después de la instrucción alter. Para evitar esto, debe crear un índice agrupado en la tabla o reconstruir el índice agrupado si ya tiene uno. La reconstrucción del índice se puede hacer con un comando REBUILD después de modificar la tabla. Pero tenga en cuenta que esto puede ser lento en mesas muy grandes. Por ejemplo:
ALTER TABLE Test
REBUILD;