SQL 服务器对 master 数据库的 OPENQUERY 运行

SQL Server OPENQUERY running against master database

我有以下声明

SELECT * FROM OPENQUERY(MyLinkedServer,'SELECT * FROM Table')

失败并出现错误

OLEDB provider "SQLNCLI10" for linked server "MyLinkedServer" returned messages "Deffered prepare could not be completed"

当我尝试时

SELECT * FROM OPENQUERY(MyLinkedServer,'SELECT DB_NAME()')

我可以看到这些语句是针对链接服务器上的主数据库运行。

我试过了

SELECT * FROM OPENQUERY(MyLinkedServer,'USE MyDB; SELECT * FROM Table')

但这也告诉我无法准备语句。

如何控制 OPENQUERY 运行 针对链接服务器上的哪个数据库?

我运行查询的SQL服务器版本是2008R2,远程服务器是2016SP1

您可以使用 three-part 姓名:

SELECT * FROM OPENQUERY(MyLinkedServer,'SELECT * FROM MyDB.schema_name.Table')