Share via


INSERT と SELECT サブクエリを使用した行の挿入

INSERT ステートメントの中で SELECT サブクエリを使用すると、テーブルに 1 つ以上の他のテーブルまたはビューの値を追加できます。また、SELECT サブクエリを使用すると、複数の行を同時に挿入することもできます。

次の例では、INSERT ステートメントを使用して、AdventureWorksSales.SalesReason テーブル内のすべての行からデータの一部を別のテーブルに挿入します。SalesReasonMarketing であるデータが挿入されます。

USE AdventureWorks;
GO
CREATE TABLE MySalesReason (
    SalesReasonID int NOT NULL,
    Name nvarchar(50),
    ModifiedDate datetime);
GO
INSERT INTO MySalesReason
    SELECT SalesReasonID, Name, ModifiedDate
    FROM AdventureWorks.Sales.SalesReason
    WHERE ReasonType = N'Marketing';
GO
SELECT SalesReasonID, Name, ModifiedDate 
FROM MySalesReason;
GO

サブクエリの選択リストは、INSERT ステートメントの列リストに一致している必要があります。列リストを指定しない場合は、選択リストは、追加されるテーブルまたはビュー内の列に一致している必要があります。

INSERT...SELECT ステートメントの別の用途は、SQL Server 2005 の外部のソースからデータを挿入することです。次の場合には、INSERT ステートメントの中で SELECT を使用できます。

参照

概念

INSERT と SELECT を使用した行の追加
INSERT と VALUES の使用による行の挿入
TOP の使用による挿入行数の制限
SELECT INTO を使用した行の挿入

ヘルプおよび情報

SQL Server 2005 の参考資料の入手