その時だけ使うワークテーブル

SQL Server Advent Calendar 10日目 です。

今日は、ある処理内で一時的に使うワークテーブルのお話しです。

一時テーブル

SQL Server には、一時テーブルを作る機能があります。
CREATE TABLE (Transact-SQL)

create table #テーブル名 ( id int, ... )
create table ##テーブル名 ( id int, ... )

テーブル名の前に "#" を付けると、ローカル一時テーブル。"##" を付けると、グローバル一時テーブルとなります。
ローカル一時テーブルは、そのセッション終了時に削除されます。
グローバル一時テーブルは、テーブルを作成したセッションが終了し、他の全てのタスクが参照を辞めた時点で削除されます。

テーブル変数

バッチやストアドの場合は、テーブル変数が使えます。
DECLARE @local_variable (Transact-SQL)

declare @work table ( id int, ... )