寻找有关如何解决此问题的指针。
我有一个链接服务器设置。 该查询在SSMS中有效,我可以返回行。
SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [LINKEDSERVER].[CATALOG].[SCHEMA].[TABLENAME] tbl
但是尝试在带有OPENQUERY的SSMS中执行相同的操作
SELECT [Col1]
FROM OPENQUERY([LINKEDSERVER],
'SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [LINKEDSERVER].[CATALOG].[SCHEMA].[TABLENAME] tbl'
) As Whatever
消息如下:
已为链接服务器“ SERVER”返回OLE DB提供程序“ SQLNCLI11” 消息“延迟的准备工作无法完成。”。讯息8180,级别 16,州1,第1行的声明无法准备。讯息7202, 级别11,状态2,行1在以下位置找不到服务器“ SERVER” sys.servers。验证是否指定了正确的服务器名称。如果 必要时,执行存储过程sp_addlinkedserver以添加 服务器到sys.servers。
当我检查select * from sys.servers
时,服务器名称SERVER确实出现了
从这里对其他链接服务器进行的OPENQUERY成功。
答案 0 :(得分:1)
因为使用OPENQUERY会发送要在远程服务器上运行的查询。远程服务器抛出该错误。在查询中取出链接服务器的名称。遵循这些原则。
SELECT [Col1]
FROM OPENQUERY([LINKEDSERVER],
'SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [CATALOG].[SCHEMA].[TABLENAME] tbl'
) As Whatever
答案 1 :(得分:0)
此语句可与其他服务器一起使用,可以,请尝试以下操作:
完成。 :)