USE DATABASE (SQL)
構文
USE [DATABASE] dbname
概要
USE DATABASE コマンドは、現在のプロセスを、指定したネームスペースおよびそれに関連するデータベースに切り替えます。これにより、SQL 内でネームスペースを変更できるようになります。DATABASE キーワードはオプションです。
指定した dbname は、目的のネームスペース、およびデータベース・ファイルを含む対応ディレクトリの名前となります。dbname は識別子として指定します。ネームスペース名は、大文字と小文字を区別しません。ネームスペースの使用に関する詳細は、"ネームスペースとデータベース" を参照してください。
USER は SQL 予約語であるため、USER ネームスペースを指定するには、以下の SQL シェルの例で示すように区切り識別子を使用する必要があります。
USER>>USE DATABASE Samples
SAMPLES>>USE DATABASE "User"
USER>>
指定した dbname が存在しない場合、InterSystems IRIS によって SQLCODE -400 エラーが発行されます。
USE DATABASE コマンドは特権を必要とする操作です。USE DATABASE を使用する前に、適切な特権を有するユーザとしてログインする必要があります。特権がない場合は、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" を参照してください。
ObjectScript の ZNSPACE コマンド、または SET $NAMESPACE 文を使用して、異なるネームスペースに切り替えることもできます。
データベース・ドライバによる実行
USE DATABASE コマンドがデータベース・ドライバにより実行されると、サーバ・プロセスはシミュレートされた接続リセットを実行します。サーバ・プロセスにより使用されるデータ構造は削除されます。ただし、コミット・モードは変更されません。READ COMMITTED 設定も変更されません。トランザクションが進行中の場合、トランザクションは実行を継続するだけであり、コミットやロールバックは実行されません。
引数
dbname
現在のネームスペースとして現在のプロセスで使用するネームスペースおよび対応するデータベース。
関連項目
-
CREATE DATABASE コマンド
-
DROP DATABASE コマンド