使用 INSERT 和 SELECT 子查詢插入資料列
INSERT 陳述式的 SELECT 子查詢可以用來將一或多個其他資料表或檢視的值新增到資料表。使用 SELECT 子查詢也讓一個以上的資料列得以同時插入。
在下列範例中,INSERT
陳述式將 AdventureWorks
(它的 SalesReason
是 Marketing
) 中的 Sales.SalesReason
資料表之所有資料列的某些資料插入另一個資料表中。
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 可用於下列項目:
- 使用四部份名稱來參考位於連結的伺服器上的遠端資料表。如需詳細資訊,請參閱<使用連結伺服器名稱來識別資料來源>。
- 使用 OPENROWSET 來參考遠端資料表。如需詳細資訊,請參閱<使用特定名稱來識別資料來源>。
- 使用執行於遠端伺服器之查詢的結果集。如需詳細資訊,請參閱<使用傳遞查詢作為資料表>。
請參閱
概念
使用 INSERT 與 SELECT 加入資料列
使用 INSERT 和 Values 插入資料列
使用 TOP 來限制插入的資料列
使用 SELECT INTO 插入資料列