SQL Server OpenQuery WHERE IN

时间:2014-08-13 21:38:42

标签: sql-server tsql sql-server-2012

我正在尝试使用OpenQuery将记录插入到另一台服务器的现有表中,我不知道为什么这不起作用,但我收到此错误

  

OLE DB提供程序" SQLNCLI11"对于链接服务器" ContractsLinkedServer"返回消息"延期准备无法完成。"

这是查询

INSERT INTO dbo.People([PersonId], [HomeId], [ContractId])
    SELECT 
       [PersonId], [HomeId], [ContractId]
    FROM
       OPENQUERY(ContractsLinkedServer,'SELECT [PersonId], [HomeId], [ContractId] 
                                        FROM RSB.dbo.People
                                        WHERE ContractId IN (SELECT ContractId From Contracts ) ') a

1 个答案:

答案 0 :(得分:0)

您的链接服务器很可能是使用" master" (或另一个数据库)作为默认数据库,我猜这个表"合同"不在该数据库中。使用链接服务器时,始终使用数据库和模式完全限定表。