SELECT INTO を使用した行の挿入

SELECT INTO ステートメントでは、新しいテーブルが作成され、そのテーブルに SELECT ステートメントの結果セットが設定されます。SELECT INTO を使用すると、複数のテーブルまたはビューのデータを 1 つのテーブルに結合できます。また、リンク サーバーから選択したデータが含まれる新しいテーブルを作成することもできます。

新しいテーブルの構造は、選択リスト内の式の属性によって決まります。この例を次に示します。次の例では、各種の従業員テーブルと住所関連のテーブルから 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 INTO を使用してパーティション テーブルを作成することはできません。SELECT INTO は、ソース テーブルのパーティション構成を使用しません。代わりに、新しいテーブルが既定のファイル グループ内に作成されます。パーティション テーブルに行を挿入するには、先にパーティション テーブルを作成してから、INSERT INTO...SELECT FROM ステートメントを使用する必要があります。

参照

概念

INSERT と SELECT を使用した行の追加
INSERT と VALUES の使用による行の挿入
TOP の使用による挿入行数の制限
INSERT と SELECT サブクエリを使用した行の挿入

その他の技術情報

SELECT (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手