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

2019/04/09データベース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が簡潔に書けるようになるのであれば、積極的に使いたい機能です。

 

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ