[SQL Server]一時テーブル(テンポラリテーブル)の作り方

[スポンサードリンク]

ストアドプロシージャ内で一時的に作ることができる一時テーブル(テンポラリテーブル)について

グローバル一時テーブルとローカル一時テーブル

グローバル一時テーブル

概要

グローバル一時(テンポラリ)テーブルは、セッションが続いている間生きており、セッション内の別のストアドプロシージャからも操作が可能である。

例えばストアドプロシージャAが「グローバル一時テーブルA」を作成した場合。

その後、複数のプログラムがストアドプロシージャAを実行した場合や別のストアドプロシージャBが「グローバル一時テーブルA」を使用している場合、「グローバル一時テーブルA」を使用するストアドプロシージャの実行が全て終わり、セッションが全て無くなったときに「グローバル一時テーブルA」は削除される。

グローバル一時テーブルの作成方法

グローバル一時テーブルの名前は「##」から始まる。

注意事項

グローバルなので、ストアドプロシージャや動的SQLが実行されるときにもう既にテーブルが存在しているかもしれない。
その場合はエラーとなる。

メッセージ 2714、レベル 16、状態 6、行 2
データベースに ‘##WorkTable’ という名前のオブジェクトが既に存在します。

このエラーを防ぐためにCREATEの前のIF文で存在確認をしておく必要がある。

ローカル一時テーブル

概要

ローカル一時(テンポラリ)テーブルは、それを作成したストアドプロシージャや動的SQLのみアクセスができる。

「ローカル一時テーブルA」を作成する「ストアドプロシージャA」が複数呼び出され実行されても。

それぞれのセッション(ストアドプロシージャA)用の独立した「ローカル一時テーブルA」が作成され、それぞれの作成元の処理が終わるまで生きている。

ローカル一時テーブルの作成方法

ローカル一時テーブルの名前は「#」から始まる。

注意事項

ローカル一時テーブルはそれを作成したストアドプロシージャでのみ操作ができる。

残ったままのローカル一時テーブルを再利用することはないため、冒頭の処理でテーブルが存在したら削除して作りなおす必要がある。

[スポンサードリンク]

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


ピックアップ記事

  1. 本記事ではXMLからSQLを取得し、SQLiteで実行する。プリペアードステートメントを使用する。 …
  2. リモートデスクトップ接続のサーバーで、スタートメニューが反応しなくなった場合 (さらに&hell…
  3. 例えば、あなたが中途採用で企業の求人に応募した際の話。 (さらに…)…
  4. 無料動画セミナー・クラスメンバとインスタンスメンバ (さらに…)…
  5. 画面のパラメータにより異なる検索条件や、異なるテーブルのデータを取得する際。 「UNION ALL…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る