SQL Server 一時テーブル

SQL Server
この記事は約2分で読めます。
はじめに

SQL Serverの一時テーブルは2種類あります。

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

 

--テーブル作成
CREATE TABLE ##一時テーブル名 (
   カラム名 型
,  カラム名 型
)
--値を挿入
INSERT INTO ##一時テーブル名
SELECT 値
FROM テーブル名
--参照
SELECT * FROM ##一時テーブル名

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

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

 

似たものにテーブル変数というものがありますが、別物です。

コメント

タイトルとURLをコピーしました