グローバル変数は、データベースサーバーで設定された値を持っています。たとえば、グローバル変数 @@version の値は、データベースサーバーの現在のバージョン番号です。
グローバル変数は、名前の先頭に付けられた 2 つのアットマーク (@) で、ローカル変数や接続レベル変数と区別されます。たとえば、@@error や @@rowcount はグローバル変数です。ユーザーはグローバル変数を定義できません。また、グローバル変数の値は直接更新できません。
一部のグローバル変数 (@@identity など) は、接続に固有の情報と値を保持します。その他の変数 (@@connections など) は、すべての接続に共通の値を保持します。
特別値 (CURRENT DATE、CURRENT TIME、USER、SQLSTATE など) は、グローバル変数に類似しています。
次の文は、バージョングローバル変数を呼び出します。
SELECT @@version; |
プロシージャーとトリガーでは、グローバル変数は変数リストから選択できます。次のプロシージャーでは、ver パラメーター内にあるサーバーのバージョン番号を返します。
CREATE PROCEDURE VersionProc ( OUT ver VARCHAR(100) ) BEGIN SELECT @@version INTO ver; END; |
Embedded SQL の場合、グローバル変数はホスト変数リストから選択できます。
変数名 | 意味 |
---|---|
@@char_convert | 0 (Transact-SQL との互換性を保つための値)。 |
@@client_csid | -1 (Transact-SQL との互換性を保つための値)。 |
@@client_csname | NULL (Transact-SQL との互換性を保つための値)。 |
@@connections | 最後のサーバー起動後に行われたログインの数。 |
@@cpu_busy | 0 (Transact-SQL との互換性を保つための値)。 |
@@dbts | DEFAULT TIMESTAMP で定義されたすべてのカラムの最後に生成された値を表す TIMESTAMP 値。 |
@@error |
直前に実行された文の成功または失敗をチェックする Transact-SQL エラーコード。直前のトランザクションが成功していた場合は、0 が返されます。直前のトランザクションが失敗だった場合は、システムによって生成された最後のエラー番号が返されます。 @@error が返す値の説明については、Transact-SQL プロシージャーでのエラー処理を参照してください。
|
@@fetch_status |
最後のフェッチ文によって得られたステータス情報を保持します。この機能は @@sqlstatus と同じですが、@@sqlstatus とは異なる値を返します。Microsoft SQL Server との互換性のために用意されています。@@fetch_status には、次のいずれかの値が格納されます。
|
@@identity | INSERT 文または SELECT INTO 文によって IDENTITY カラムまたは DEFAULT AUTOINCREMENT カラムに挿入された最後の値。 |
@@idle | 0 (Transact-SQL との互換性を保つための値)。 |
@@io_busy | 0 (Transact-SQL との互換性を保つための値)。 |
@@isolation | 接続の現在の独立性レベル。@@isolation は、アクティブレベルの値を取ります。 |
@@langid | 現在の接続で使用中の言語のユニークな言語 ID。 |
@@language | 接続で使用されている言語の名前を返します。 |
@@max_connections | パーソナルサーバーの場合、サーバーに対して確立できる同時接続最大数 (10 接続)。ネットワークサーバーの場合、アクティブクライアントの最大数 (各クライアントが複数の接続をサポートできるため、データベース接続とは異なります)。 |
@@maxcharlen | CHAR 文字セットの文字の最大長 (バイト単位)。 |
@@ncharsize | NCHAR 文字セットの文字の最大長 (バイト単位)。 |
@@nestlevel | -1 (Transact-SQL との互換性を保つための値)。 |
@@pack_received | 0 (Transact-SQL との互換性を保つための値)。 |
@@pack_sent | 0 (Transact-SQL との互換性を保つための値)。 |
@@packet_errors | 0 (Transact-SQL との互換性を保つための値)。 |
@@procid | 現在実行されているプロシージャーのストアドプロシージャー ID。 |
@@rowcount |
最後の文の影響を受けるローの数。@@rowcount の値は、文の直後にチェックする必要があります。 INSERT、UPDATE、DELETE の各文は、影響を受けたローの数を @@rowcount に設定します。 カーソルを使用する場合、@@rowcount は、最後のフェッチ要求までに、カーソルの結果セットからクライアントに返されたローの累積数を表します。 IF 文のようにローに影響を及ぼさない文によって、@@rowcount が 0 にリセットされることはありません。 |
@@servername | 現在のデータベースサーバーの名前。 |
@@spid | 現在の接続の接続ハンドル。これは、sa_conn_info プロシージャーによって表示されるものと同じ値です。 |
@@sqlstatus |
最後のフェッチ文によって得られたステータス情報を保持します。@@sqlstatus には、次のいずれかの値が格納されます。
|
@@textsize | SET TEXTSIZE オプションの現在の値。これは、SELECT 文で返される TEXT または IMAGE データのバイト単位の最大長です。デフォルト設定は 32765 (READTEXT を使用して返すことができる最長のバイト文字列)。この値は、SET 文を使用して設定できます。 |
@@thresh_hysteresis | 0 (Transact-SQL との互換性を保つための値)。 |
@@timeticks | 0 (Transact-SQL との互換性を保つための値)。 |
@@total_errors | 0 (Transact-SQL との互換性を保つための値)。 |
@@total_read | 0 (Transact-SQL との互換性を保つための値)。 |
@@total_write | 0 (Transact-SQL との互換性を保つための値)。 |
@@tranchained | 現在のトランザクションモード。非連鎖の場合は 0、連鎖の場合は 1 です。 |
@@trancount | トランザクションのネストレベル。バッチ内の BEGIN TRANSACTION ごとに、トランザクションカウントが増分されます。 |
@@transtate | -1 (Transact-SQL との互換性を保つための値)。 |
@@version | SQL Anywhere の現在のバージョン番号。 |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |