DROP DATABASE(Transact-SQL)

업데이트: 2006년 12월 12일

SQL Server에서 하나 이상의 데이터베이스 또는 데이터베이스 스냅숏을 제거합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] 
[;]

인수

  • database_name
    제거할 데이터베이스의 이름을 지정합니다. 데이터베이스 목록을 표시하려면 sys.databases 카탈로그 뷰를 사용하십시오.
  • database_snapshot_name
    제거할 데이터베이스 스냅숏의 이름을 지정합니다.

주의

DROP DATABASE를 사용하려면 연결의 데이터베이스 컨텍스트가 삭제할 데이터베이스 또는 데이터베이스 스냅숏과 동일하지 않아야 합니다.

DROP DATABASE 문은 자동 커밋 모드로 실행되어야 하며 명시적이거나 암시적인 트랜잭션에서는 허용되지 않습니다. 자동 커밋 모드는 기본 트랜잭션 관리 모드입니다. 자세한 내용은 자동 커밋 트랜잭션을 참조하십시오.

데이터베이스 삭제

시스템 데이터베이스는 삭제할 수 없습니다.

데이터베이스를 삭제하면 SQL Server 인스턴스에서 데이터베이스가 삭제되며 데이터베이스가 사용하는 물리적 디스크 파일도 삭제됩니다. 삭제 시 데이터베이스 또는 해당 데이터베이스의 파일 중 하나가 오프라인 상태이면 디스크 파일은 삭제되지 않습니다. 이 파일은 Windows 탐색기를 사용해 수동으로 삭제할 수 있습니다. 파일 시스템에서 파일을 삭제하지 않고 현재 서버에서 데이터베이스를 제거하려면 sp_detach_db를 사용합니다.

사용 중인 데이터베이스는 삭제할 수 없습니다. 즉, 사용자가 읽기 또는 쓰기 작업을 위해 데이터베이스를 열어 놓은 상태이기 때문입니다. 데이터베이스에서 사용자를 제거하려면 ALTER DATABASE를 사용해 데이터베이스를 SINGLE_USER로 설정하십시오.

데이터베이스를 삭제하려면 먼저 데이터베이스의 모든 데이터베이스 스냅숏을 삭제해야 합니다.

데이터베이스에서 로그 전달 작업을 수행하고 있는 경우 데이터베이스를 삭제하기 전에 로그 전달을 제거하십시오. 자세한 내용은 로그 전달을 참조하십시오.

데이터베이스는 오프라인, 읽기 전용 및 주의 대상과 같은 상태에 관계 없이 삭제할 수 있습니다. 데이터베이스의 현재 상태를 표시하려면 sys.databases 카탈로그 뷰를 사용하십시오.

삭제된 데이터베이스는 백업 복원을 통해서만 다시 만들 수 있습니다. 데이터베이스 스냅숏은 백업할 수 없으므로 복원할 수 없습니다.

데이터베이스가 삭제될 때마다 master 데이터베이스를 백업해야 합니다.

데이터베이스 스냅숏 삭제

데이터베이스 스냅숏 삭제는 SQL Server 인스턴스에서 데이터베이스 스냅숏을 삭제하고 스냅숏이 사용하는 물리적 NTFS 파일 시스템 스파스 파일도 삭제합니다. 데이터베이스 스냅숏이 사용하는 스파스 파일에 대한 자세한 내용은 데이터베이스 스냅숏 작동 방법을 참조하십시오.

데이터베이스 스냅숏을 삭제하면 SQL Server의 인스턴스에 대한 계획 캐시가 삭제됩니다. 계획 캐시를 삭제하면 모든 후속 실행 계획이 다시 컴파일되며 일시적으로 갑자기 쿼리 성능이 저하됩니다. SQL Server 2005 서비스 팩 2에서는 계획 캐시의 삭제된 각 캐시스토어에 대해 SQL Server 오류 로그에 "데이터베이스 유지 관리 또는 재구성 작업으로 인해 '%s' 캐시스토어(계획 캐시의 일부)에 대한 캐시스토어 플러시가 SQL Server에서 %d번 발견되었습니다"라는 정보 메시지가 있습니다. 이 메시지는 캐시가 해당 시간 간격 내에 플러시되는 동안 5분마다 기록됩니다.

복제에 사용된 데이터베이스 삭제

트랜잭션 복제를 위해 게시된 데이터베이스 또는 병합 복제를 위해 게시 또는 구독된 데이터베이스를 삭제하려면 먼저 데이터베이스에서 복제를 제거해야 합니다. 데이터베이스에서 복제를 제거하는 방법은 복제 제거를 참조하십시오. 데이터베이스가 손상되었거나 복제를 먼저 제거할 수 없거나 또는 두 가지 모두 해당되는 경우, 대부분 ALTER DATABASE를 사용해 데이터베이스를 오프라인으로 설정한 뒤 삭제하는 방식으로 데이터베이스를 삭제할 수 있습니다.

사용 권한

DROP DATABASE를 실행하려면 최소한 데이터베이스에 대한 CONTROL 권한이 필요합니다.

1. 단일 데이터베이스 삭제

다음 예에서는 Sales 데이터베이스를 제거합니다.

DROP DATABASE Sales;

2. 여러 데이터베이스 삭제

다음 예에서는 나열된 각각의 데이터베이스를 제거합니다.

DROP DATABASE Sales, NewSales;

3. 데이터베이스 스냅숏 삭제

다음 예에서는 원본 데이터베이스에 영향을 주지 않으면서 sales_snapshot0600이라는 이름의 데이터베이스 스냅숏을 삭제합니다.

DROP DATABASE sales_snapshot0600;

참고 항목

참조

ALTER DATABASE(Transact-SQL)
CREATE DATABASE(Transact-SQL)
EVENTDATA(Transact-SQL)
sys.databases(Transact-SQL)

관련 자료

데이터베이스 삭제
데이터베이스 스냅숏 삭제

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

새로운 내용
  • "데이터베이스 스냅숏 삭제" 섹션에 계획 캐시 삭제에 대한 정보를 추가했습니다.

2006년 7월 17일

새로운 내용
  • 데이터베이스를 삭제하는 대체 방법으로 sp_detach_db 사용에 대한 참조를 추가했습니다.