从多行插入多行

Insert multiple rows from multiple rows

如何在不使用游标的情况下从另一个 table 插入多行?

示例:

假设我有三个 table:

  1. Customers (CustomerId, Name)
  2. Gifts (GifId, GiftName)
  3. GiftsToCustomers (GiftId, CustomerId)

table 客户和礼物可以包含不止一行。

现在假设我在 table Gifts 中有 3 件礼物,我想把它送给我所有的顾客。

有没有一种方法可以在不通过 CustomersGifts 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