链接服务器查询有效,但相同的 OPENQUERY 会产生错误“无法在 sys.servers 中找到服务器 'SERVER'
Linked Server Query works, but OPENQUERY of same produces error "Could not find server 'SERVER' in sys.servers
寻找有关如何解决此问题的指示。
我有一个链接服务器设置。
此查询在 SSMS 中有效,我得到了行。
SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [LINKEDSERVER].[CATALOG].[SCHEMA].[TABLENAME] tbl
但尝试在 SSMS 中使用 OPENQUERY 执行相同操作失败
SELECT [Col1]
FROM OPENQUERY([LINKEDSERVER],
'SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [LINKEDSERVER].[CATALOG].[SCHEMA].[TABLENAME] tbl'
) As Whatever
留言如下:
OLE DB provider "SQLNCLI11" for linked server "SERVER" returned
message "Deferred prepare could not be completed.". Msg 8180, Level
16, State 1, Line 1 Statement(s) could not be prepared. Msg 7202,
Level 11, State 2, Line 1 Could not find server 'SERVER' in
sys.servers. Verify that the correct server name was specified. If
necessary, execute the stored procedure sp_addlinkedserver to add the
server to sys.servers.
当我检查select * from sys.servers
时,确实出现了服务器名称SERVER
从此处针对其他链接服务器的 OPENQUERY 成功。
这句话在另一台服务器上使用,但是,可以试试这个:
- EXEC SP_SERVEROPTION 'SERVER\INSTANCIA' ,'DATA ACCESS',TRUE
- SELECT * 来自 OPENQUERY(您的服务器,'SELECT * FROM TABLE')。
完成了。 :)
因为当您使用 OPENQUERY 时,您会将您想要的查询发送到远程服务器上的 运行。错误是由远程服务器抛出的。取出查询中的链接服务器名称。沿着这些路线。
SELECT [Col1]
FROM OPENQUERY([LINKEDSERVER],
'SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [CATALOG].[SCHEMA].[TABLENAME] tbl'
) As Whatever
寻找有关如何解决此问题的指示。
我有一个链接服务器设置。 此查询在 SSMS 中有效,我得到了行。
SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [LINKEDSERVER].[CATALOG].[SCHEMA].[TABLENAME] tbl
但尝试在 SSMS 中使用 OPENQUERY 执行相同操作失败
SELECT [Col1]
FROM OPENQUERY([LINKEDSERVER],
'SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [LINKEDSERVER].[CATALOG].[SCHEMA].[TABLENAME] tbl'
) As Whatever
留言如下:
OLE DB provider "SQLNCLI11" for linked server "SERVER" returned message "Deferred prepare could not be completed.". Msg 8180, Level 16, State 1, Line 1 Statement(s) could not be prepared. Msg 7202, Level 11, State 2, Line 1 Could not find server 'SERVER' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
当我检查select * from sys.servers
时,确实出现了服务器名称SERVER
从此处针对其他链接服务器的 OPENQUERY 成功。
这句话在另一台服务器上使用,但是,可以试试这个:
- EXEC SP_SERVEROPTION 'SERVER\INSTANCIA' ,'DATA ACCESS',TRUE
- SELECT * 来自 OPENQUERY(您的服务器,'SELECT * FROM TABLE')。
完成了。 :)
因为当您使用 OPENQUERY 时,您会将您想要的查询发送到远程服务器上的 运行。错误是由远程服务器抛出的。取出查询中的链接服务器名称。沿着这些路线。
SELECT [Col1]
FROM OPENQUERY([LINKEDSERVER],
'SELECT tbl.[Col1]
,tbl.[CoL2]
FROM [CATALOG].[SCHEMA].[TABLENAME] tbl'
) As Whatever