SQLServerにはテンポラリテーブル(一時テーブル)と呼ばれるセッションが有効な間だけ存在するテンポラリー的なテーブルを作成することができます。
テンポラリテーブル(一時テーブル)はT-SQLで作成したプログラムなどで「一時的」にデータを保存して置く時などに便利に使えます。
またテンポラリテーブル(一時テーブル)は「tmpdb」と呼ばれる表領域に作成され、メモリ上にしか存在しないので、セッションが無効になると自動で消えるという便利な機能も持っています。
(DROP TABLEを明示的に実行する必要がない。)
SQLServerのテンポラリテーブル(一時テーブル)の特徴
以下にSQLServerのSQLServerのテンポラリテーブル(一時テーブル)の特徴をあげておきます。
- 表領域「tempdb」 に格納される(実体を持つわけではなくメモリ上だけに存在)
- 通常のテーブルと同様プライマリーキー(PRIMARY KEY)を付けることができる
- 通常のテーブルと同様インデックス(INDEX)を付けることができる
- CREATE文のテーブル名に「#」(ローカル)、「##」(グローバル)を付加して作成する
一時テーブル(ローカル)は一時テーブルを作成したセッションが無効になると自動的に削除される
一時テーブル(グローバル)はすべてのユーザーに表示され、このテーブルを参照するすべてのユーザーのセッションが無効になると削除される
SQLServerのテンポラリテーブル(一時テーブル)の作り方
SQLServerのテンポラリテーブル(一時テーブル)の作り方はCREATE文のテーブル名に「#」(ローカル)、「##」(グローバル)を付加して作成します。
--ローカル用テンポラリテーブル(一時テーブル) CREATE TABLE #tmp_table ( no INT NOT NULL ,name VARCHAR(20)NULL ) --グローバル用テンポラリテーブル(一時テーブル) CREATE TABLE ##tmp_table ( no INT NOT NULL ,name VARCHAR(20)NULL )
作成するタイミングでテンポラリテーブル(一時テーブル)のテーブル名に「#」「##」をつける以外は通常のテーブルと大きく変わることはありません。
また、テンポラリテーブル(一時テーブル)削除もセッション終了後、自動で行われるので、通常はDROP TABLEコマンドでテーブルを削除する必要もありません。