SQL Server从本地合并到链接服务器错误

时间:2017-10-06 06:59:01

标签: sql-server linked-server sql-merge

我正在尝试通过插入和更新将我的本地数据库中的记录合并到远程数据库,但我正在

  

无效的对象名称[localdatabase] .dbo.MASTER_CORPORATECOMPANY ***错误。

我已经分享了以下代码。谁能告诉我怎样才能达到同样目的呢?

EXEC('MERGE INTO [linkserver].[remotedatabase].dbo.MASTER_CORPORATECOMPANY AS D
USING [localdatabase].dbo.MASTER_CORPORATECOMPANY AS S
        ON D.IDENTIFICATIONNUMBER = S.IDENTIFICATIONNUMBER
WHEN MATCHED THEN
    UPDATE SET
      D.DATEOFINCORPORATION = S.DATEOFINCORPORATION,
      D.COMPANYNAME = S.COMPANYNAME,
      D.COMPANYSTATUS = S.COMPANYSTATUS,
      D.REGISTEREDSTATE = S.REGISTEREDSTATE,
      D.REGISTEREDOFFICE = S.REGISTEREDOFFICE,
      D.CREATEDDATE = S.CREATEDDATE
WHEN NOT MATCHED THEN 
      INSERT (DATEOFINCORPORATION, COMPANYNAME, COMPANYSTATUS,REGISTEREDSTATE,REGISTEREDOFFICE,CREATEDDATE)
      VALUES (S.DATEOFINCORPORATION, S.COMPANYNAME,S.COMPANYSTATUS,S.REGISTEREDSTATE,S.REGISTEREDOFFICE, S.CREATEDDATE);') AT [linkserver]

1 个答案:

答案 0 :(得分:0)

根据T-SQL Merge语句语法,Target表不能是远程表名。因此,您可能需要将本地表发送到远程服务器并在远程服务器上执行已创建的过程,该过程合并两个表,即远程主服务器和复制的临时数据。