본문 바로가기
DB 기본 개념 다지기

MSSQL에서 테이블 삭제하는 방법

by 양블로그 2025. 2. 21.
반응형

MSSQL에서 테이블을 삭제할 때는 신중해야 합니다. 테이블을 삭제하면 해당 테이블의 모든 데이터와 구조가 영구적으로 제거되므로, 삭제 전에 백업을 진행하는 것이 좋습니다. 이번 포스팅에서는 SQL 명령어를 이용한 테이블 삭제 방법과 주의할 점을 설명하겠습니다.


1. 기본 테이블 삭제 (DROP TABLE 사용)

테이블을 삭제하려면 DROP TABLE 명령어를 사용합니다.

📌 기본 사용법

DROP TABLE 테이블명;

📌 예제

DROP TABLE Customers;

위 명령어를 실행하면 Customers 테이블이 완전히 삭제됩니다.

⚠️ 주의:

  • 테이블을 삭제하면 데이터가 복구 불가능하므로 주의해야 합니다.
  • DROP TABLE을 실행하기 전에 테이블이 존재하는지 확인하는 것이 좋습니다.

2. 테이블 존재 여부 확인 후 삭제

테이블이 존재하는 경우에만 삭제하려면 IF EXISTS를 사용할 수 있습니다.

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Customers')
BEGIN
    DROP TABLE Customers;
END

✅ 위 코드를 실행하면 Customers 테이블이 존재할 경우에만 삭제됩니다.

MSSQL 2016 이상 버전에서는 더 간단한 방식이 가능합니다.

DROP TABLE IF EXISTS Customers;

DROP TABLE IF EXISTS를 사용하면 테이블이 존재하지 않아도 오류 없이 실행됩니다.


3. 외래 키(Foreign Key)가 있는 경우 테이블 삭제

다른 테이블에서 해당 테이블을 참조하는 외래 키(Foreign Key) 가 있는 경우, 테이블을 바로 삭제할 수 없습니다.

📌 해결 방법:

  1. 외래 키를 먼저 삭제한 후 테이블 삭제
ALTER TABLE Orders DROP CONSTRAINT FK_Orders_Customers;
DROP TABLE Customers;
  1. 참조하는 모든 외래 키 확인 후 삭제 외래 키를 자동으로 찾아 삭제하려면 다음 쿼리를 사용합니다.
DECLARE @sql NVARCHAR(MAX) = '';
SELECT @sql += 'ALTER TABLE ' + QUOTENAME(t.name) + ' DROP CONSTRAINT ' + QUOTENAME(fk.name) + '; '
FROM sys.foreign_keys fk
JOIN sys.tables t ON fk.parent_object_id = t.object_id
WHERE fk.referenced_object_id = OBJECT_ID('Customers');
EXEC sp_executesql @sql;

DROP TABLE Customers;

✅ 위 스크립트는 Customers 테이블을 참조하는 모든 외래 키를 자동으로 삭제한 후 테이블을 삭제합니다.


4. 모든 데이터를 삭제하지만 테이블 구조 유지 (TRUNCATE vs DELETE)

테이블을 삭제하지 않고 데이터만 삭제하고 싶다면 DELETE 또는 TRUNCATE를 사용할 수 있습니다.

명령어설명

DELETE FROM 테이블명 개별 행을 삭제, 트랜잭션 롤백 가능
TRUNCATE TABLE 테이블명 테이블의 모든 데이터를 삭제, 빠름, 롤백 불가

📌 예제

DELETE FROM Customers; -- 개별 행 삭제
TRUNCATE TABLE Customers; -- 전체 데이터 삭제

TRUNCATE는 삭제 후 자동으로 인덱스를 리셋하며, 속도가 더 빠릅니다.


✅ 결론

삭제 방법 사용법 특징
테이블 삭제 DROP TABLE 테이블명 테이블과 데이터 완전 삭제, 복구 불가
테이블 존재 시 삭제 DROP TABLE IF EXISTS 테이블명 테이블이 있을 경우만 삭제
외래 키 삭제 후 테이블 삭제 ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명 참조된 경우 먼저 삭제 필요
데이터만 삭제 TRUNCATE TABLE 테이블명 구조 유지, 데이터만 삭제

테이블을 삭제하기 전에 반드시 백업을 확인하고, 종속성(외래 키)을 체크하는 것이 중요합니다. 데이터베이스를 안전하게 관리하세요! 🚀

반응형