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) 가 있는 경우, 테이블을 바로 삭제할 수 없습니다.
📌 해결 방법:
- 외래 키를 먼저 삭제한 후 테이블 삭제
ALTER TABLE Orders DROP CONSTRAINT FK_Orders_Customers;
DROP TABLE Customers;
- 참조하는 모든 외래 키 확인 후 삭제 외래 키를 자동으로 찾아 삭제하려면 다음 쿼리를 사용합니다.
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 테이블명 | 구조 유지, 데이터만 삭제 |
테이블을 삭제하기 전에 반드시 백업을 확인하고, 종속성(외래 키)을 체크하는 것이 중요합니다. 데이터베이스를 안전하게 관리하세요! 🚀
'DB 기본 개념 다지기' 카테고리의 다른 글
MSSQL 종속성 보기 방법 (Dependency View) (0) | 2025.02.21 |
---|---|
MSSQL에서 테이블 이름 변경하는 방법 (0) | 2025.02.21 |
MSSQL ALTER TABLE 열 추가 ADD/삭제 DROP COLUMN/변경 ALTER COLUMN (0) | 2024.02.07 |
MSSQL 테이블 만들기 CREATE TABLE (0) | 2024.02.07 |
데이터베이스 관리 - 중요 옵션, 파일 크기 증가/축소, DB 분리와 연결 (1) | 2023.07.05 |