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

use*_*901 3 sql sql-server-2008

标题是问题.如果有人可以指向链接,如果可能的话,将会非常有用.

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

Mik*_*son 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);
Run Code Online (Sandbox Code Playgroud)