我正在尝试通过插入和更新将我的本地数据库中的记录合并到远程数据库,但我正在
无效的对象名称[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]
答案 0 :(得分:0)
根据T-SQL Merge语句语法,Target表不能是远程表名。因此,您可能需要将本地表发送到远程服务器并在远程服务器上执行已创建的过程,该过程合并两个表,即远程主服务器和复制的临时数据。