Eu tenho as seguintes tabelas
-- 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');
Tenho 10 linhas em #tmpProducts e meu objetivo é inserir essas linhas na tabela #product. Para cada linha inserida com sucesso na tabela de produtos, preciso associar o ID recém-gerado ao rownum correspondente na tabela #tmpProducts. Como posso fazer isso? Qualquer ajuda é muito apreciada. Obrigado!
Resultado esperado:
Assim:
saídas
Você deve usar MERGE em vez de INSERT, pois INSERT só permite OUTPUT colunas da tabela de destino. Este é o padrão que o Entity Framework usa para inserções em lote, e Brent Ozar tem uma postagem no blog sobre isso aqui .