INSERT 语句中的 SELECT 子查询可用于将一个或多个表或视图中的值添加到另一个表中。使用 SELECT 子查询还可以同时插入多行。
如:将 AdventureWorks 的 Sales.SalesReason 表中 SalesReason 为 Marketing 的所有行中的一些数据插入到一个单独的表中
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列列表相匹配,如果没有指定列列表,选择列表必须与正在其中执行插入操作的表或视图的列匹配。
sql 2005 中可以用于从外部数据源插入数据。
评论区