Tsql 插入dest并更新源
在SQL Server 2008中,是否可以将源表中的数据插入dest表,并同时使用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表可能不会被修改 我最好的选
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
或其他内容。