我有以下表格
-- Create the #product table
CREATE TABLE #product
(
id UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID(),
name VARCHAR(100),
createdDate DATE
);
-- Create the #tmpproducts table
CREATE TABLE #tmpProducts
(
rownum INT PRIMARY KEY IDENTITY(1,1),
name VARCHAR(100),
createdDate DATE
);
-- Insert data into #tmpSignings
INSERT INTO #tmpProducts (name, createdDate)
VALUES
('John Doe', '2023-11-22'),
('Jane Smith', '2023-11-23'),
('Alice Johnson', '2023-11-24'),
('Bob Williams', '2023-11-25'),
('Eva Brown', '2023-11-26'),
('Michael Davis', '2023-11-27'),
('Sophia Miller', '2023-11-28'),
('William Wilson', '2023-11-29'),
('Olivia Jones', '2023-11-30'),
('Daniel White', '2023-12-01');
我在 #tmpProducts 中有 10 行,我的目标是将这些行插入到 #product 表中。对于成功插入到产品表中的每一行,我需要将新生成的 ID 关联回 #tmpProducts 表中相应的 rownum。我怎样才能做到这一点?任何帮助是极大的赞赏。谢谢你!
预期输出:
像这样:
输出
您必须使用 MERGE 而不是 INSERT,因为 INSERT 只允许您从目标表中输出列。这是实体框架用于批量插入的模式,Brent Ozar在此处有一篇关于它的博客文章。