はじめに
SQL Serverの一時テーブルは2種類あります。
| 種類 | 命名規則 | 参照スコープ |
|---|---|---|
| ローカル一時テーブル | #で始まる | 同一セッション内で有効 |
| グローバル一時テーブル | ##で始まる | 別セッションでも有効 |
一時テーブルの特徴
- 一時テーブルは表領域「tempdb」 に格納される
- 一時テーブルは通常のテーブルと同様プライマリーキー(PRIMARY KEY)を付けることができる
- 一時テーブルは通常のテーブルと同様インデックス(INDEX)を付けることができる
- 一時テーブル(ローカル)は一時テーブルを作成したセッションが無効になると自動的に削除される
- 一時テーブル(グローバル)はすべてのユーザーに表示され、このテーブルを参照するすべてのユーザーのセッションが無効になると削除される
基本文型
--テーブル作成 CREATE TABLE #一時テーブル名 ( カラム名 型 , カラム名 型 ) --値を挿入 INSERT INTO #一時テーブル名 SELECT 値 FROM テーブル名 --参照 SELECT * FROM #一時テーブル名
--テーブル作成 CREATE TABLE ##一時テーブル名 ( カラム名 型 , カラム名 型 ) --値を挿入 INSERT INTO ##一時テーブル名 SELECT 値 FROM テーブル名 --参照 SELECT * FROM ##一時テーブル名

実行した。クエリを閉じる(セッションが切れる)と自動的に削除されます。

また、ローカル一時テーブルは、セッション単位なのでセッションが違えば同じ名前のテーブルが作成可能ですが、グローバル一時テーブルは、参照するセッションが存在する限り同じ名前のテーブルは、作成出来ません。
似たものにテーブル変数というものがありますが、別物です。


コメント