Cú pháp theo quy định của Microsoft cho việc bỏ một phần cột của câu lệnh ALTER là đây
DROP
{
[ CONSTRAINT ]
{
constraint_name
[ WITH
( <drop_clustered_constraint_option> [ ,...n ] )
]
} [ ,...n ]
| COLUMN
{
column_name
} [ ,...n ]
} [ ,...n ]
Lưu ý rằng [, ... n] xuất hiện sau cả tên cột và ở cuối mệnh đề thả toàn bộ. Điều này có nghĩa là có hai cách để xóa nhiều cột. Bạn có thể làm điều này:
ALTER TABLE TableName
DROP COLUMN Column1, Column2, Column3
hoặc cái này
ALTER TABLE TableName
DROP
COLUMN Column1,
COLUMN Column2,
COLUMN Column3
Cú pháp thứ hai này rất hữu ích nếu bạn muốn kết hợp việc thả cột với việc bỏ ràng buộc:
ALTER TBALE TableName
DROP
CONSTRAINT DF_TableName_Column1,
COLUMN Column1;
Khi thả các cột, SQL Sever không lấy lại khoảng trống được lấy bởi các cột được thả. Đối với các loại dữ liệu được lưu trữ nội tuyến trong các hàng (ví dụ int), nó thậm chí có thể chiếm không gian trên các hàng mới được thêm vào sau câu lệnh thay đổi. Để giải quyết vấn đề này, bạn cần tạo một chỉ mục được nhóm trên bảng hoặc xây dựng lại chỉ mục được phân cụm nếu nó đã có một chỉ mục. Việc xây dựng lại chỉ mục có thể được thực hiện bằng lệnh REBUILD sau khi sửa đổi bảng. Nhưng được cảnh báo điều này có thể chậm trên các bảng rất lớn. Ví dụ:
ALTER TABLE Test
REBUILD;