Share via


使用 INSERT 和 SELECT 子查詢插入資料列

INSERT 陳述式中的 SELECT 子查詢可以用來將一或多個其他資料表或檢視的值新增到資料表。使用 SELECT 子查詢也讓一個以上的資料列得以同時插入。

在下列範例中,INSERT 陳述式將 AdventureWorks2008R2 (它的 SalesReason 是 Marketing) 中的 Sales.SalesReason 資料表之所有資料列的某些資料插入另一個資料表中。

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

子查詢的選取清單必須與 INSERT 陳述式的資料行清單相符。若未指定資料行清單,則選取清單必須與要插入之資料表或檢視中的資料行相符。

INSERT...SELECT 陳述式的另一種用法是從 SQL Server 以外的來源插入資料。INSERT 陳述式中的 SELECT 可用於下列項目: