본문 바로가기
Database/MSSQL

MSSQL DROP TABLE 제대로 사용하기

by yazasus 2025. 5. 16.
728x90

MSSQL DROP TABLE 제대로 사용하기 – 안전한 테이블 삭제 방법 총정리

DROP TABLE은 SQL Server에서 기존 테이블을 완전히 삭제할 때 사용하는 T-SQL 명령어입니다.
삭제된 테이블은 복구가 불가능하므로, 신중하게 사용해야 합니다.

1. 기본 사용법

가장 간단한 형태는 다음과 같습니다:


DROP TABLE Users;

이 명령을 실행하면 Users 테이블의 구조와 데이터가 모두 영구적으로 삭제됩니다.

---

2. 여러 테이블 동시 삭제

쉼표(,)로 구분하면 여러 테이블을 한 번에 삭제할 수 있습니다 (SQL Server 2016 이상):


DROP TABLE Orders, OrderItems, Logs;

단, 외래키(Foreign Key) 제약조건이 연결되어 있다면 오류가 발생할 수 있습니다.

---

3. 삭제 전 테이블 존재 여부 확인

삭제하려는 테이블이 없을 경우 오류가 발생하기 때문에, 존재 여부를 체크하고 삭제하는 방식이 더 안전합니다.


IF OBJECT_ID('Users', 'U') IS NOT NULL
    DROP TABLE Users;
  • OBJECT_ID(): 테이블이 존재하면 해당 ID를 반환
  • 'U': User-defined 테이블을 의미

---

4. 외래 키 제약조건이 있는 경우

다른 테이블에서 외래키로 참조되고 있는 테이블은 바로 삭제할 수 없습니다.

이 경우, 먼저 외래 키 제약조건을 삭제한 뒤 테이블을 DROP해야 합니다.


ALTER TABLE OrderItems
DROP CONSTRAINT FK_OrderItems_Orders;

DROP TABLE Orders;

제약조건 이름은 다음 쿼리로 확인할 수 있습니다:


SELECT * FROM sys.foreign_keys WHERE parent_object_id = OBJECT_ID('OrderItems');

---

5. 임시 테이블 삭제

임시 테이블은 세션 종료 시 자동 삭제되지만, 명시적으로 DROP할 수도 있습니다.


DROP TABLE #TempTable;

글로벌 임시 테이블도 같은 방식으로 삭제 가능합니다:


DROP TABLE ##GlobalTemp;

---

실무 팁 💡

  • 운영 환경에서는 절대 실시간 DROP을 하지 마세요. 백업을 반드시 선행하고, 삭제 계획은 승인 절차를 거쳐야 합니다.
  • 테이블 삭제 전에는 외래키, 뷰, 프로시저 등 연관 객체 의존성도 확인하세요.
  • SSMS에서는 ‘개체 탐색기 → 테이블 우클릭 → 삭제’ 기능도 사용 가능하지만, 대규모 삭제 작업은 T-SQL로 하는 것이 안전합니다.

---

마무리

DROP TABLE은 강력하지만 위험한 명령어입니다.
실수로 실행하면 데이터와 구조가 모두 삭제되므로, 항상 존재 여부를 확인하고, 외래키 의존성까지 고려한 후 실행하는 습관을 들이세요.
정확하고 신중한 T-SQL 사용이 실무 안전성을 높이는 핵심입니다.

728x90