如果源数据库和目标数据库位于不同的服务器上,我们可以运行MERGE语句吗?

时间:2011-12-05 07:46:06

标签: sql sql-server-2008

标题是问题。如果有人可以指向一个链接,如果可能的话,将会非常有帮助。

而且,我们可以在Merge语句中使用CTE吗?或者我们需要考虑像临时表或表变量这样的替代方法吗?

1 个答案:

答案 0 :(得分:8)

合并的目标不能是远程表,但源可以是。您可以在merge语句中使用CTE。

您可以这样做:

with S as
(
  select ID,
         Name
  from ServerName.DBName.dbo.TableName
)
merge LocalTable as T
using S
on T.ID = S.ID
when not matched then
  insert (ID, Name) values(S.UnitID, S.Name);