次の方法で共有


DROP DATABASE (Transact-SQL)

1 つ以上のユーザー データベースまたはデータベース スナップショットを SQL Server のインスタンスから削除します。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Windows Azure SQL データベース (初回のリリースから現在のバージョンまで)

トピック リンク アイコン Transact-SQL 構文表記規則

構文

-- SQL Server Syntax
DROP DATABASE { database_name | database_snapshot_name } [ ,...n ] [;]

-- Windows Azure SQL Database Syntax 
DROP DATABASE database_name [;]

引数

  • database_name
    削除するデータベースの名前を指定します。 データベースの一覧を表示するには、sys.databases カタログ ビューを使用します。

  • database_snapshot_name

    適用対象: SQL Server 2008 から SQL Server 2014。

    削除するデータベース スナップショットの名前を指定します。

全般的な解説

データベースは、オフライン、読み取り専用、未確認などの状態にかかわらず、削除することができます。 データベースの現在の状態を表示するには、sys.databases カタログ ビューを使用します。

削除されたデータベースは、バックアップを復元することによってのみ、再作成できます。 データベース スナップショットはバックアップできません。したがって復元もできません。

データベースを削除する場合は、master データベースをバックアップする必要があります。

データベースを削除すると、SQL Server のインスタンスからそのデータベースが削除され、そのデータベースで使用されている物理ディスク ファイルも削除されます。 削除の際にデータベースまたはディスク ファイルのいずれかがオフラインの場合、ディスク ファイルは削除されません。 これらのファイルは Windows エクスプローラーを使用して手動で削除できます。 データベース ファイルをファイル システムから削除せずにデータベースを現在のサーバーから削除するには、sp_detach_db を使用します。

SQL Server

データベース スナップショットを削除すると、SQL Server のインスタンスからデータベース スナップショットが削除され、スナップショットで使用されている物理的な NTFS ファイル システムのスパース ファイルが削除されます。 データベース スナップショットによるスパース ファイルの使用の詳細については、「データベース スナップショット (SQL Server)」を参照してください。 データベース スナップショットを削除すると、SQL Server のインスタンスのプラン キャッシュが消去されます。 プラン キャッシュが消去されると、後続のすべての実行プランが再コンパイルされ、場合によっては、クエリ パフォーマンスが一時的に急激に低下します。プラン キャッシュ内のキャッシュストアが消去されるたびに、"SQL Server は、データベース メンテナンス操作または再構成操作により、'%s' キャッシュストア (プラン キャッシュの一部) のキャッシュストア フラッシュを %d 個検出しました。" という情報メッセージが SQL Server エラー ログに記録されます。 このメッセージは、5 分間隔でログに記録されるようになっているので、その期間内に発生したキャッシュのフラッシュが記録されます。

相互運用性

SQL Server

トランザクション レプリケーションに対してパブリッシュされたデータベース、あるいは、マージ レプリケーションに対してパブリッシュまたはサブスクライブされたデータベースを削除するには、まず、データベースからレプリケーションを削除する必要があります。 データベースが損傷しているか、レプリケーションを最初に削除できない場合、またはその両方の場合でも、ALTER DATABASE を使用してデータベースをオフラインに設定してから削除すると、ほとんどの場合、データベースを削除できます。

データベースがログ配布に関与している場合は、データベースを削除する前にログ配布を削除します。 詳細については、「ログ配布について (SQL Server)」を参照してください。

Windows Azure SQL データベース

None

制限事項と制約事項

システム データベースは削除できません。

DROP DATABASE ステートメントは、自動コミット モードで実行する必要があり、明示的または暗黙的なトランザクションでは許可されません。 自動コミット モードは、既定のトランザクション管理モードです。

使用中のデータベースは削除できません。 使用中のデータベースとは、1 人以上のユーザーが読み込みまたは書き込みのため開いているデータベースです。 データベースからそのユーザーを削除するには、ALTER DATABASE を使用して、データベースを SINGLE_USER に設定します。

SQL Server

データベースを削除する前に、そのデータベース上のすべてのデータベース スナップショットを削除する必要があります。

Windows Azure SQL データベース

データベースを削除するには、master データベースに接続する必要があります。

DROP DATABASE ステートメントは SQL バッチ内の唯一のステートメントである必要があります。また、一度に削除できるデータベースは 1 つだけです。

権限

SQL Server

データベースの CONTROL 権限、ALTER ANY DATABASE 権限、または db_owner 固定データベース ロールのメンバーシップが必要です。

Windows Azure SQL データベース

データベースを削除できるのは、(準備プロセスによって作成される) サーバーレベルのプリンシパルのログイン、または dbmanager データベース ロールのメンバーだけです。

使用例

A. 1 つのデータベースを削除する

次の例では、Sales データベースを削除します。

DROP DATABASE Sales;

B. 複数のデータベースを削除する

適用対象: SQL Server 2008 から SQL Server 2014。

次の例では、一覧表示された各データベースを削除します。

DROP DATABASE Sales, NewSales;

C. データベース スナップショットを削除する

適用対象: SQL Server 2008 から SQL Server 2014。

次の例では、sales_snapshot0600 というデータベース スナップショットを、ソース データベースには影響を与えずに削除します。

DROP DATABASE sales_snapshot0600;

関連項目

参照

ALTER DATABASE (Transact-SQL)

CREATE DATABASE (SQL Server Transact-SQL)

EVENTDATA (Transact-SQL)

sys.databases (Transact-SQL)