如何在链接服务器上使用合并

时间:2013-05-07 07:54:35

标签: sql sql-server-2008 merge

是否可以在链接服务器上使用merge语句?如果是这样的话?

我尝试过以下操作,但会生成错误消息

  

MERGE语句的目标不能是远程表,也不是远程表   查看或远程表的视图。

EXEC sp_addlinkedserver
@server=N'devServer',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'192.168.2.58\SQLSERVER';

EXEC sp_addlinkedserver
@server=N'localServer',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'localhost\SQLSERVER';

Merge devServer.<dbName>.dbo.<tableName> as Target
USING localServer.<dbName>.dbo.<tableName> as Source
On (Source.HubID = Target.HubID)
When Matched then
    update set
        NAME = Source.NAME,
        CODE = Source.CODE,
        IPAddress = Source.IPAddress
When Not Matched Then
    Insert(, , ,)
    Values (, , ,);

    select * from sys.Servers

1 个答案:

答案 0 :(得分:3)

Microsoft SQL Server 2008不支持此功能。来自msdn documentation

  

target_table 不能是远程表。

您可以详细了解here