【问题标题】:Linked Server - Can see tables but not columns链接服务器 - 可以看到表但不能看到列
【发布时间】:2019-09-30 12:31:56
【问题描述】:

我正在尝试查询链接服务器,当我在 SSMS 中展开对象资源管理器时,我可以看到服务器上的所有数据库以及各个数据库中的所有表,但无法展开以查看列。我也无法运行任何带有以下错误的查询:

1 - 如果我右键单击表名并单击脚本表作为 - 选择到 - 新查询窗口,我会收到以下错误

[LinkedServerName].[singhm]..[testtable] 不包含可以选择的列,或者当前用户没有对该对象的权限。

2 - 如果我按如下方式运行 openquery 语句:

select * 
from openquery(LinkedServerName ,'select * from [singhm]..[testtable]') 

我收到以下错误:

无法初始化 OLE DB 提供程序“MSDASQL”的数据源对象 对于链接服务器“LinkedServerName”。

出于上下文目的,我的链接服务器是与 MySQL 数据库数据源的 ODBC 连接。

如果您能就此问题提供任何建议和/或指导,我将不胜感激。

非常感谢, 曼帕尔·辛格

【问题讨论】:

  • 那么,您正在尝试使用 MSDASQL 创建链接服务器连接 MySQL 数据库?
  • @Brian - 添加链接服务器时,遵循/参考多个在线教程,我没有将服务器指向任何特定的提供者,但所有教程都提到了我所做的配置 MSDASQL。我创建了一个 ODBC 适配器并连接到一个连接到 MySQL 数据源的 ODBC dsn。它在 excel 中连接良好,我可以在 excel 中从 ODBC 获取数据,因此连接正在为此工作。当尝试在 SSMS 中做同样的事情时,连接已建立,即如果我测试连接,它可以工作,我可以看到所有数据库和表,但无法展开以查看列。
  • 哦,没错 - MSDASQL 是“用于 ODBC 驱动程序的 OLE DB 提供程序”。抱歉 - 已经有一段时间了。恐怕我这里没有别的东西了。
  • @Brian 事实证明,我需要安装不同的 odbc 提供程序。 download.cnet.com/ODBC-NET-Data-Provider/… 。我现在可以使用以下语法查询链接服务器。 select top 10 * from openquery(MYSQL,'select * from singhm.testtable') .
  • 将其写为答案并接受它 - 这样其他遇到此问题并在此处搜索解决方案的人会找到它。

标签: mysql sql-server tsql linked-server


【解决方案1】:

我需要download 并安装不同的 odbc 提供程序。我现在可以使用以下语法查询链接服务器。

select top 10 * from openquery(MYSQL,'select * from singhm.testtable')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多