Tsql 插入dest并更新源

Tsql 插入dest并更新源,tsql,sql-server-2008,Tsql,Sql Server 2008,在SQL Server 2008中,是否可以将源表中的数据插入dest表,并同时使用dest表中的@标识更新源表 范例 表来源: Id - UniqueId Name - varchar(10) RealId [null] - int 表目的地 Id - [id] INT identity Name - varchar(10) 我想将行从源传输到Dest,并从Dest表中将RealId更新为@identity值 我可以用我喜欢的任何方式修改源代码,Dest表可能不会被修改 我最好的选

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

范例

表来源:

Id - UniqueId
Name - varchar(10) 
RealId [null] - int 
表目的地

Id - [id] INT identity
Name - varchar(10)  
我想将行从源传输到Dest,并从Dest表中将
RealId
更新为@identity值

我可以用我喜欢的任何方式修改源代码,Dest表可能不会被修改

我最好的选择是什么

另外请注意,“Name”列可能包含重复项,因此我无法真正加入其中


(实际的表格要复杂得多,但这应该给出我想要的信息和想法)

看看这个问题。
您可以使用merge的输出来获取一个表变量,该表变量在源和目标中的id之间具有链接。然后您可以使用该表更新源表。

第一条注释:使用
SCOPE\u IDENTITY()
而不是
@@IDENTITY
-它更安全,更真实地反映了您真正寻找的内容。第二:如果要插入dest,然后更新source,则需要在这两个字段中使用相同的字段-如果
name
无法插入,则需要其他内容,例如
dest
表上的
SourceId
或其他内容。