SELECT した結果を新しいテーブルに挿入する

SQL Server Advent Calendar 11日目 です。

今日は、INTO 句 (Transact-SQL) のお話しです。
SELECT INTO を使うことで結果セットの定義通りのテーブルを作成し、データも入れることが出来ます。

select 
  [受注].[受注日] 
  , [受注].[取引先] 
  , [受注明細].[商品] 
  , [受注明細].[数量] 
  , [受注明細].[単価] 
into [ワークテーブル] 
from 
  [受注] inner join [受注明細] on [受注].[PK] = [受注明細].[受注PK] 
where 
  [受注].[未処理フラグ] = 0 

このクエリでは、新しく [ワークテーブル] という名前のテーブルを作成し、クエリの結果を入れています。 先日紹介した一時テーブルとすることも可能です。

select * into #worktable from Hoge ...

テーブルを作成するので、CREATE 出来る権限が必要です。また前回紹介した テーブル変数では使えません。