1

是否可以在链接服务器上使用合并语句?如果有怎么办?

我尝试了以下方法,但它会生成一条错误消息

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
4

1 回答 1

3

这在 Microsoft SQL Server 2008 中不受支持。从msdn 文档中,

target_table不能是远程表。

你可以在这里阅读更多关于它的信息。

于 2013-05-07T15:20:47.853 回答