How to use merge on linked servers

Can the merge operator be used on linked servers? If so, how?

I tried the following but it generates an error

The target of a MERGE statement cannot be a remote table, a remote view, or a remote table view.

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


source to share


1 answer


This is not supported in Microsoft SQL Server 2008. From the msdn documentation ,

target_table cannot be a remote table.



You can read more about this here .

+3


source







All Articles