Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

DECLARE LOCAL TEMPORARY TABLE 文

この文は、ローカル・テンポラリ・テーブルを宣言するために使用します。

構文
DECLARE LOCAL TEMPORARY TABLE table-name
( { column-definition [ column-constraint ... ] | table-constraint | pctfree }, ... )
[ ON COMMIT { DELETE | PRESERVE } ROWS
   | NOT TRANSACTIONAL ]
pctfree : PCTFREE percent-free-space
percent-free-space : integer
パラメータ

column-definitioncolumn-constrainttable-constraintpctfree の定義については、CREATE TABLE 文を参照してください。

  • ON COMMIT 句   デフォルトでは、テンポラリ・テーブルのローは COMMIT のときに削除されます。ON COMMIT 句を使用すると、COMMIT のときにローを保護できます。

  • NOT TRANSACTIONAL 句    この句を使用して作成されたテーブルは、COMMIT と ROLLBACK のいずれの影響も受けません。状況によっては、NOT TRANSACTIONAL 句を使用するとパフォーマンスが向上します。これは、トランザクション単位でないテンポラリ・テーブルでの操作では、ロールバック・ログにエントリが作成されないためです。たとえば、テンポラリ・テーブルを使用するプロシージャが COMMIT や ROLLBACK の介入を受けずに繰り返し呼び出される場合、NOT TRANSACTIONAL が有用です。

備考

DECLARE LOCAL TEMPORARY TABLE 文はテンポラリ・テーブルを宣言します。

宣言されたテンポラリ・テーブルのローは、テーブルが明示的に削除されたとき、またはスコープ外になったときに削除されます。TRUNCATE または DELETE を使用して、明示的にローを削除することもできます。

複合文内で宣言されたローカル・テンポラリ・テーブルは、複合文内に存在します (複合文の使用を参照してください)。それ以外の場合、宣言されたローカル・テンポラリ・テーブルは接続の終わりまで存在します。

プロシージャの完了後も保持されるローカル・テンポラリ・テーブルをプロシージャで作成するには、代わりに CREATE LOCAL TEMPORARY TABLE 文を使用します (CREATE LOCAL TEMPORARY TABLE 文を参照してください)。

パーミッション

なし

関連する動作

なし

参照
標準と互換性
  • SQL/2003   コア SQL に含まれない SQL/基本機能。

次の例は、ストアド・プロシージャ内のテンポラリ・テーブルの宣言方法を示します。

BEGIN
  DECLARE LOCAL TEMPORARY TABLE TempTab ( number INT );
  ...
END