INTO 句 (Transact-SQL)

更新 : 2007 年 9 月 15 日

新しいテーブルを作成し、クエリの結果得られた行をこのテーブルに挿入します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

 [ INTO new_table ]

引数

  • new_table
    新しいテーブルの名前を指定します。このテーブルは選択リストで指定した列と WHERE 句で選択された行を基に作成されます。new_table の形式は、選択リスト内の式を評価することによって決まります。new_table 内の列は、選択リストの指定順に作成されます。new_table 内の各列の名前、データ型、値は、選択リスト内の対応する式と同じになります。

    リストに計算列が指定されている場合、新しいテーブル内の対応する列は計算列にはなりません。新しい列の値は、SELECT...INTO が実行された時点の計算値になります。

    SELECT...INTO を含む特定の一括操作のログ記録量は、データベースに対して有効な復旧モデルによって異なります。詳細については、「復旧モデルの概要」を参照してください。

    ms188029.note(ja-jp,SQL.90).gifメモ :
    SQL Server 2000 より前のリリースでは、SELECT INTO を使用したパーマネント テーブルの作成は、select into/bulkcopy がオンの場合のみ許可されます。SQL Server 2000 以降では、SELECT INTO を使用してパーマネント テーブルを作成できるかどうかは、select into/bulkcopy データベース オプションによって影響を受けません。

解説

SELECT ステートメントに INTO 句を指定して実行するには、対象データベースの CREATE TABLE 権限が必要です。

ソース テーブルがパーティション分割されている場合でも、SELECT INTO を使用してパーティション テーブルを作成することはできません。SELECT INTO は、ソース テーブルのパーティション構成を使用しません。代わりに、新しいテーブルが既定のファイル グループ内に作成されます。パーティション テーブルに行を挿入するには、先にパーティション テーブルを作成してから、INSERT INTO...SELECT FROM ステートメントを使用する必要があります。

SELECT...INTO は、COMPUTE と共に使用することはできません。

次の例では、各種の従業員テーブルと住所関連のテーブルから 7 つの列を選択して、テーブル dbo.EmployeeAddresses を作成します。

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.Title, a.AddressLine1, a.City, sp.Name AS [State/Province], a.PostalCode
INTO dbo.EmployeeAddresses
FROM Person.Contact AS c
JOIN HumanResources.Employee AS e ON e.ContactID = c.ContactID
JOIN HumanResources.EmployeeAddress AS ea ON ea.EmployeeID = e.EmployeeID
JOIN Person.Address AS a on a.AddressID = ea.AddressID
JOIN Person.StateProvince as sp ON sp.StateProvinceID = a.StateProvinceID;
GO

参照

関連項目

SELECT (Transact-SQL)
SELECT の例 (Transact-SQL)

その他の技術情報

SELECT INTO を使用した行の挿入

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2007 年 9 月 15 日

新しい内容 :
  • 「解説」にパーティション テーブルの情報を追加しました。
  • 「例」を追加しました。