ALTER 문의 열 부분을 삭제하기 위해 Microsoft에서 지정한 구문 은 다음과 같습니다.
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 Server는 삭제 된 열이 차지하는 공간을 회수하지 않습니다. 행에 인라인으로 저장된 데이터 형식 (예 : int)의 경우 alter 문 뒤에 추가 된 새 행에서 공간을 차지할 수도 있습니다. 이 문제를 해결하려면 테이블에서 클러스터형 인덱스를 만들거나 클러스터형 인덱스가 이미있는 경우 다시 만들어야합니다. 테이블을 수정 한 후 REBUILD 명령으로 인덱스를 다시 작성할 수 있습니다. 그러나 매우 큰 테이블에서는 이것이 느릴 수 있습니다. 예를 들면 다음과 같습니다.
ALTER TABLE Test
REBUILD;