INTO 句 (Transact-SQL)
更新 : 2007 年 9 月 15 日
新しいテーブルを作成し、クエリの結果得られた行をこのテーブルに挿入します。
構文
[ INTO new_table ]
引数
new_table
新しいテーブルの名前を指定します。このテーブルは選択リストで指定した列と WHERE 句で選択された行を基に作成されます。new_table の形式は、選択リスト内の式を評価することによって決まります。new_table 内の列は、選択リストの指定順に作成されます。new_table 内の各列の名前、データ型、値は、選択リスト内の対応する式と同じになります。リストに計算列が指定されている場合、新しいテーブル内の対応する列は計算列にはなりません。新しい列の値は、SELECT...INTO が実行された時点の計算値になります。
SELECT...INTO を含む特定の一括操作のログ記録量は、データベースに対して有効な復旧モデルによって異なります。詳細については、「復旧モデルの概要」を参照してください。
メモ : 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)
その他の技術情報
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2007 年 9 月 15 日 |
|