Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

DROP DATABASE (SQL)

データベース (ネームスペース) を削除します。

Synopsis

DROP DATABASE [IF EXISTS] dbname [RETAIN_FILES]

引数

引数 説明
IF EXISTS オプション — 存在しないデータベースに対してコマンドが実行される場合にエラーを抑制します。
dbname 削除するデータベース (ネームスペース) の名前。
RETAIN_FILES オプション — 指定した場合は、物理データベース・ファイル (IRIS.DAT ファイル) は削除されません。既定では、.DAT ファイルはネームスペースおよび他のデータベース・エンティティと共に削除されます。

概要

DROP DATABASE コマンドは、1 つのネームスペース、およびそれに関連するデータベースを削除します。

指定した dbname は、ネームスペース、および対応するデータベース・ファイルを含むディレクトリの名前となります。dbname識別子として指定します。ネームスペース名は、大文字と小文字を区別しません。指定した dbname ネームスペースが存在しない場合、InterSystems IRIS は SQLCODE -340 エラーを発行します。

DROP DATABASE コマンドは特権を必要とする操作です。DROP DATABASE を使用する前に、%Admin_Manage リソースを有するユーザとしてログインする必要があります。ユーザには、ルーチンおよびグローバルなデータベース定義のために、そのリソースの READ 許可も必要となります。特権がない場合は、SQLCODE -99 エラー (特権違反) が返されます。

$SYSTEM.Security.Login()Opens in a new tab メソッドを使用して、以下のようにユーザに適切な特権を割り当ててください。

   DO $SYSTEM.Security.Login("_SYSTEM","SYS")
   &sql(      )

$SYSTEM.Security.Login メソッドを呼び出すには、%Service_Login:Use 特権が必要です。詳細は、"インターシステムズ・クラス・リファレンス" の "%SYSTEM.SecurityOpens in a new tab" を参照してください。

DROP DATABASE は、特権に関係なく、システム・ネームスペースの削除には使用できません。これを実行しようとすると、SQLCODE -342 エラーが返されます。

DROP DATABASE は、現在使用しているか接続しているネームスペースの削除には使用できません。これを実行しようとすると、SQLCODE -344 エラーが返されます。

管理ポータルを使用してネームスペースを削除することもできます。[システム管理][構成][システム構成][ネームスペース] の順に選択して、既存のネームスペースをリストします。削除するネームスペースのための [削除] ボタンをクリックします。

RETAIN_FILES

このオプションを指定した場合は、物理ファイル構造を保持して、データベースおよびそれに関連するネームスペースを削除します。この操作を実行した後に、dbname を使用するために以下のことを試みると、次のような結果となります。

  • RETAIN_FILES を指定しないで DROP DATABASE を使用する場合は、この物理ファイル構造を削除できません。代わりに、SQLCODE -340 エラー (データベースが見つかりません) が返されます。

  • RETAIN_FILES を指定して DROP DATABASE を使用する場合も、SQLCODE -340 エラー (データベースが見つかりません) が返されます。

  • CREATE DATABASE を使用する場合は、新規データベースを同じ名前で作成することができません。代わりに、SQLCODE -341 エラー (データベースのためのデータベース・ファイルを作成できません) が返されます。

  • このネームスペースを使用しようとすると、<NAMESPACE> エラーが返されます。

サーバ Init コードおよび切断コード

$SYSTEM.SQL.Util.SetOption("ServerInitCode",value)Opens in a new tab および $SYSTEM.SQL.Util.SetOption("ServerDisconnectCode",value)Opens in a new tab メソッドを使用して、サーバ Init コードとサーバ切断コードをネームスペースに割り当てることができます。対応する $SYSTEM.SQL.Util.GetOption()Opens in a new tab メソッド・オプションを使用して、現在の値を確認できます。

DROP DATABASE または他のインタフェースを使用してネームスペースを削除すると、これらのサーバ Init コードとサーバ切断コードの値は削除されます。したがって、ネームスペースを削除してから再作成する場合は、これらの値を再度指定する必要があります。

以下の例では、ネームスペースとそれに関連するデータベース (この場合は、'c:\InterSystems\IRIS\mgr\DocTestDB') を削除します。物理データベース・ファイルは保持されます。

CREATE DATABASE DocTestDB ON DIRECTORY 'c:\InterSystems\IRIS142\mgr\DocTestDB'
DROP DATABASE DocTestDB RETAIN_FILES

関連項目

FeedbackOpens in a new tab