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