MSSQL 컬럼 삭제 핵심 가이드
– 기본 쿼리: ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
– 여러 컬럼도 한 번에 삭제 가능(쉼표 사용)
– 제약 조건(키, 체크) 있으면 먼저 해제해야 안전합니다
– SSMS에서 GUI로도 쉽게 컬럼 삭제 가능
– 실행 전에 백업은 필수! 삭제 후 공간 회수도 잊지 마세요
MSSQL 컬럼 삭제, 기본 쿼리는 어떻게 되나요?
테이블에서 필요 없는 컬럼을 삭제할 때는 아주 간단합니다. 기본 문법은 ALTER TABLE 뒤에 DROP COLUMN을 쓰는 거예요. 예를 들어 products 테이블에서 old_price 컬럼을 없애려면 이렇게 입력하면 됩니다.
ALTER TABLE products
DROP COLUMN old_price;이 명령을 실행하면 컬럼과 그 안 데이터가 완전히 사라져요. 그렇기 때문에 꼭 미리 백업을 해두어야 합니다. 저도 처음에 이 점을 몰라서 중요한 정보를 날린 경험이 있어요.
한 번에 여러 컬럼을 삭제하고 싶다면 어떤 쿼리를 써야 할까요?
컬럼을 여러 개 삭제해야 할 때는 컬럼 이름을 쉼표로 구분해 한 줄에 적으면 됩니다. 예를 들면 employees 테이블에서 address, phone, email을 동시에 지울 때 이렇게 해요.
ALTER TABLE employees
DROP COLUMN address, phone, email;이 방법으로 시간과 노력을 크게 절약할 수 있습니다. 다만 컬럼 하나라도 중요한 데이터가 있다면 무조건 백업하세요. 한 번 확인하는 습관이 사고를 막습니다.
제약 조건이 걸린 컬럼은 왜 삭제 안 될까요? 해결 방법은?
가끔 DROP COLUMN이 안 되는 경우가 있습니다. 이럴 때는 그 컬럼에 연결된 체크 제약, 기본키, 외래키 같은 제약 조건을 먼저 해제해야 하기 때문이에요. 예를 들어 CHECK 제약 ‘CK_price_positive’가 있으면 먼저 이렇게 풀어줍니다.
ALTER TABLE products DROP CONSTRAINT CK_price_positive;
ALTER TABLE products DROP COLUMN price;이처럼 제약을 없앤 뒤 컬럼 삭제를 진행하면 에러 없이 깔끔하게 작업할 수 있습니다. SSMS에서 제약 조건을 확인하면 훨씬 편하니 참고하세요.
SQL 쿼리가 어렵다면 SSMS GUI에서 컬럼 삭제는 어떻게 할 수 있나요?
코드 대신 마우스 클릭으로 작업하고 싶다면 SSMS 활용을 추천합니다. Object Explorer에서 원하는 테이블을 찾아 컬럼을 우클릭 후 Delete를 누르거나 테이블 디자인 모드에서 컬럼 선택 후 삭제할 수 있어요.
관계가 연결된 컬럼이면 삭제 전 제약 조건 해제 메시지가 나오니 안정적으로 작업할 수 있습니다. GUI는 실수 확률도 줄여 주니 초보분께 특히 유용하답니다.
컬럼 삭제 후 데이터 공간이 줄어들지 않는다면 어떻게 해야 할까요?
삭제 작업 후에는 테이블 공간이 바로 줄어들지 않을 수 있어요. 이때는 ALTER TABLE REBUILD 명령을 써서 공간을 회수합니다.
ALTER TABLE products REBUILD;삭제 전후로 sp_spaceused 명령을 쳐 보면서 실제 변화도 확인할 수 있죠. 공간 정리가 되면 저장소 용량도 절약됩니다. 이 과정도 꼭 기억하세요.
| 단계 | 작업 내용 |
|---|---|
| 1단계 | 삭제할 컬럼과 제약 조건 확인 |
| 2단계 | 제약 조건이 있으면 먼저 DROP CONSTRAINT 실행 |
| 3단계 | ALTER TABLE DROP COLUMN으로 컬럼 삭제 |
| 4단계 | ALTER TABLE REBUILD로 공간 회수 |
| 5단계 | 관련 인덱스나 뷰 점검 |
실제로 MSSQL 컬럼 삭제 쿼리를 적용해 본 예가 궁금하지 않으세요?
제가 프로젝트 때 사용한 예를 들어 드리겠습니다. 쇼핑몰 orders 테이블에서 discount, surcharge 컬럼이 필요 없어져서 붙잡고 있었는데, 먼저 두 컬럼을 동시에 삭제했습니다.
ALTER TABLE orders DROP COLUMN discount, surcharge;바로 실행하고 나서 데이터를 확인하니 컬럼이 사라진 걸 보고 개운했어요. 제약 조건도 안 걸려서 순조로웠고요. 이렇게 쿼리가 쉽고 깔끔하면 테이블 관리가 한층 편해집니다.
어떤 에러가 자주 발생하나요? 문제 해결은 어떻게 해야 할까요?
- CHECK constraint가 있어서 컬럼을 못 지울 때 → 제약 이름 찾아서 DROP CONSTRAINT로 해제
- 컬럼이 PRIMARY KEY에 끼어 있을 때 → 키 먼저 해제 후 삭제
- 뷰에서 컬럼이 반영 안 될 때 → ALTER VIEW로 뷰 정의 수정 필요
- 테이블 공간이 줄지 않을 때 → REBUILD 명령 실행
이러한 문제점들은 대부분 제약 조건 확인과 공간 정리로 해결됩니다. 미리 알아두면 번거로운 상황을 피할 수 있습니다.
마지막으로, MSSQL 컬럼 삭제를 준비할 때 가장 중요한 점은 무엇일까요?
가장 중요한 건 무조건 백업입니다. 한 번 삭제하면 데이터는 복구하기 어렵습니다. 쿼리를 직접 실행하기 전 테스트 환경에서 충분히 실험해 보세요. 그리고 제약 조건 확인과 공간 관리를 꾸준히 챙기면 좋은 결과가 따라옵니다.
자주 묻는 질문
컬럼 삭제하면 데이터는 완전히 사라지나요?
네, 데이터가 영구 삭제됩니다.
제약 조건 때문에 컬럼 삭제가 안 될 때는 어떻게 해야 하나요?
제약 조건을 먼저 해제해야 합니다.
SSMS에서 컬럼 삭제하는 게 좋은가요?
초보자는 SSMS GUI가 편리합니다.