SQLServerの一時テーブル(テンポラリーテーブル)の作り方

SQLServerには「一時テーブル」と呼ばれるセッションが有効な間だけ存在するテンポラリー的なテーブルを作成することができます。

T-SQLのプログラムなどで「一時的」にデータを保存しておいたり、複雑なSQLを簡単にするために利用したりできます。

一時テーブルの特徴

以下にSQLServerの一時テーブルの特徴をあげておきます。

  • 一時テーブルは表領域「tempdb」 に格納される
  • 一時テーブルは通常のテーブルと同様プライマリーキー(PRIMARY KEY)を付けることができる
  • 一時テーブルは通常のテーブルと同様インデックス(INDEX)を付けることができる
  • 一時テーブルはCREATE文のテーブル名に「#」(ローカル)、「##」(グローバル)を付加して作成する
  • 一時テーブル(ローカル)は一時テーブルを作成したセッションが無効になると自動的に削除される
  • 一時テーブル(グローバル)はすべてのユーザーに表示され、このテーブルを参照するすべてのユーザーのセッションが無効になると削除される

一時テーブルの作り方

一時テーブルの作り方はCREATE文のテーブル名に「#」(ローカル)、「##」(グローバル)を付加して作成します。

作成するタイミングでテーブル名に「#」「##」をつける以外は通常のテーブルと大きく変わることはありません。

また、一時テーブルの削除も自動で行われるので、通常はDROP TABLEコマンドでテーブルを削除する必要もありません。

まとめ

SQLServerの一時テーブルは簡単に作れるので、SQLが簡潔に書けるようになるのであれば、積極的に使いたい機能です。