SQLServerの一時テーブル(テンポラリーテーブル)の作り方
SQLServerには「一時テーブル」と呼ばれるセッションが有効な間だけ存在するテンポラリー的なテーブルを作成することができます。
T-SQLのプログラムなどで「一時的」にデータを保存しておいたり、複雑なSQLを簡単にするために利用したりできます。
一時テーブルの特徴
以下にSQLServerの一時テーブルの特徴をあげておきます。
- 一時テーブルは表領域「tempdb」 に格納される
- 一時テーブルは通常のテーブルと同様プライマリーキー(PRIMARY KEY)を付けることができる
- 一時テーブルは通常のテーブルと同様インデックス(INDEX)を付けることができる
- 一時テーブルはCREATE文のテーブル名に「#」(ローカル)、「##」(グローバル)を付加して作成する
- 一時テーブル(ローカル)は一時テーブルを作成したセッションが無効になると自動的に削除される
- 一時テーブル(グローバル)はすべてのユーザーに表示され、このテーブルを参照するすべてのユーザーのセッションが無効になると削除される
一時テーブルの作り方
一時テーブルの作り方は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コマンドでテーブルを削除する必要もありません。
まとめ
SQLServerの一時テーブルは簡単に作れるので、SQLが簡潔に書けるようになるのであれば、積極的に使いたい機能です。