【发布时间】:2018-04-05 15:58:10
【问题描述】:
我有以下说法
SELECT * FROM OPENQUERY(MyLinkedServer,'SELECT * FROM Table')
哪个因错误而失败
返回链接服务器“MyLinkedServer”的 OLEDB 提供程序“SQLNCLI10” 消息“延迟准备无法完成”
当我尝试时
SELECT * FROM OPENQUERY(MyLinkedServer,'SELECT DB_NAME()')
我可以看到这些语句是针对链接服务器上的主数据库运行的。
我试过了
SELECT * FROM OPENQUERY(MyLinkedServer,'USE MyDB; SELECT * FROM Table')
但这也告诉我无法准备声明。
如何控制 OPENQUERY 针对链接服务器上的哪个数据库运行?
我运行查询的SQL服务器版本是2008R2,远程服务器是2016SP1
【问题讨论】:
-
如果您只打算在远程服务器上使用一个数据库,您可以在链接服务器设置中设置目录(要使用的默认数据库)。否则请参阅stackoverflow.com/questions/495719/querying-a-linked-sql-server
标签: sql-server-2008-r2 sql-server-2016 linked-server openquery