【问题标题】:Do I have to use OpenQuery to query a MySQL Linked Server from SQL Server?我是否必须使用 OpenQuery 从 SQL Server 查询 MySQL 链接服务器?
【发布时间】:2012-01-01 12:01:41
【问题描述】:

我正在从 SQL Server 查询 MySQL 链接服务器。

我可以使用 OpenQuery 查询链接服务器,如下例所示。

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

我已尝试使用四部分名称查询链接服务器,如下例所示。

SELECT * FROM MyLinkedServer.MyDatabase.DBO.SomeTable

这会返回一个错误,指出“提供程序没有公开必要的接口来使用目录或架构。​​”

有什么方法可以在不使用 OpenQuery 的情况下查询链接服务器?

谢谢!

更新:根据 Shredder 的回答,正确的语法如下。

SELECT * FROM MyLinkedServer...SomeTable

【问题讨论】:

  • EXEC('SELECT * FROM SomeTable') AT MyLinkedServer - 更好,恕我直言,因为它直接执行 MySQL,并且不会执行像 OPENQUERY 这样可能导致奇怪错误的奇怪事情。

标签: mysql sql-server


【解决方案1】:

有可能,但 MS 建议您使用 openquery:

此方法让 SQL Server 将命令直接发送到链接的 OLAP 提供程序,无需尝试解析它。

您可以查看“具有四部分名称的链接服务器示例”下的示例here

另外,我找到了this

如果您收到这些错误消息,则表中可能缺少 [Linked DB] 架构,否则您可能没有该表的权限。

我会验证您的 mysql db 是否已授予对您的 sql server 的访问权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多