插入dest并更新源代码

Rog*_*son 5 t-sql sql-server-2008

在SQL Server 2008中,是否可以将源表中的数据插入到dest表中,并同时从dest表中使用@@ identity更新源表?

表来源:

Id - UniqueId
Name - varchar(10) 
RealId [null] - int 
Run Code Online (Sandbox Code Playgroud)

表目的地

Id - [id] INT identity
Name - varchar(10)  
Run Code Online (Sandbox Code Playgroud)

我想将行从Source传输到Dest,并RealId从Dest表更新到@@ identity值

我可以以任何我喜欢的方式修改Source,Dest表可能不会被更改.

我最好的选择是什么?

另请注意,"名称"列可能包含重复项,因此我无法真正加入该列.

(真正的表格要复杂得多,但这应该给出我想要的东西)

Mik*_*son 4

看看这个问题。使用 merge..output 获取 source.id 和 target.id 之间的映射。您可以使用合并的输出来获取一个表变量,其中包含源和目标中的 id 之间的链接。然后您可以使用该表来更新源表。