我正在从SQL Server查询MySQL链接服务器。
我可以使用OpenQuery查询链接的服务器,如以下示例所示。
SELECT * FROM OPENQUERY(MyLinkedServer, 'SELECT * FROM SomeTable')
我尝试使用四部分名称查询链接服务器,如以下示例所示。
SELECT * FROM MyLinkedServer.MyDatabase.DBO.SomeTable
这将返回一个错误,指出“提供程序没有公开使用目录或架构的必要接口”。
有没有不用OpenQuery来查询链接服务器的方法?
谢谢!
更新:根据Shredder的回答,正确的语法如下。
SELECT * FROM MyLinkedServer...SomeTable
可以,但是MS建议您使用openquery:
使用此方法,SQL Server可以将命令直接发送到链接的OLAP提供程序,而无需尝试对其进行解析。
你可以看一下例子在这里下的“链接服务器的例子有四部分名称”
另外,我发现了这个:
如果收到这些错误消息,则[Linked DB]模式中可能缺少表,或者您对该表没有权限。
我将验证您的mysql数据库是否具有对sql服务器的访问权限。