SQL Server-插入,返回id并更新



我有两个表,一个用于暂存,另一个用于生产。具有列namephonebd_id的暂存以及生产数据库具有列idnamephone

我在临时表中有几行数据,我想将它们全部插入到生产数据库中,并返回生产行的id以更新临时表的列bd_id

如果我一个接一个地插入它们,我可以通过将插入的末尾放入SET @bd_id = SCOPE_IDENTITY ()来完成,但有没有办法做到这一点,但同时插入几行?

您可以这样做:

declare @ids table (int id, name varchar(255), phone varchar(255));
insert into production (name, phone)
output id, name, phone into @ids
select name, phone
from staging s;
update s
set s.b_id = i.id
from staging s join
@ids i
on s.name = i.name and s.phone = i.phone;

这假设name/phonestaging表上是唯一的。

最新更新