从多行插入多行
Insert multiple rows from multiple rows
如何在不使用游标的情况下从另一个 table 插入多行?
示例:
假设我有三个 table:
Customers
(CustomerId
, Name
)
Gifts
(GifId
, GiftName
)
GiftsToCustomers
(GiftId
, CustomerId
)
table 客户和礼物可以包含不止一行。
现在假设我在 table Gifts
中有 3 件礼物,我想把它送给我所有的顾客。
有没有一种方法可以在不通过 Customers
或 Gifts
table 使用 cursor/loop 的情况下做到这一点?
我不是在寻找类似
的东西
insert into GiftsToCustomers
Select GiftId, @CustomerId
from Gifts
我必须在 customers/gifts 的每一行上执行此操作。
交叉连接应该可以解决问题 - 您可以使用它来匹配 gifts
中的每一行与 custmers
:
中的每一行
INSERT INTO GiftsToCustomers (GiftId, CustomerId)
SELECT GiftId, CustomerId
FROM Gifts
CROSS JOIN Customers
如何在不使用游标的情况下从另一个 table 插入多行?
示例:
假设我有三个 table:
Customers
(CustomerId
,Name
)Gifts
(GifId
,GiftName
)GiftsToCustomers
(GiftId
,CustomerId
)
table 客户和礼物可以包含不止一行。
现在假设我在 table Gifts
中有 3 件礼物,我想把它送给我所有的顾客。
有没有一种方法可以在不通过 Customers
或 Gifts
table 使用 cursor/loop 的情况下做到这一点?
我不是在寻找类似
的东西insert into GiftsToCustomers
Select GiftId, @CustomerId
from Gifts
我必须在 customers/gifts 的每一行上执行此操作。
交叉连接应该可以解决问题 - 您可以使用它来匹配 gifts
中的每一行与 custmers
:
INSERT INTO GiftsToCustomers (GiftId, CustomerId)
SELECT GiftId, CustomerId
FROM Gifts
CROSS JOIN Customers