链接服务器 - 可以看到表但不能看到列
Posted
技术标签:
【中文标题】链接服务器 - 可以看到表但不能看到列【英文标题】: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') . 将其写为答案并接受它 - 这样其他遇到此问题并在此处搜索解决方案的人会找到它。 【参考方案1】:我需要download 并安装不同的 odbc 提供程序。我现在可以使用以下语法查询链接服务器。
select top 10 * from openquery(MYSQL,'select * from singhm.testtable')
【讨论】:
以上是关于链接服务器 - 可以看到表但不能看到列的主要内容,如果未能解决你的问题,请参考以下文章
为啥有些用户可以在 Synapse 工作区中看到链接的 Azure Data Lake Gen 2 资源,而其他用户却不能?
Centos7.3 进入救援模式,解决虚拟机开机引导只能看到一个横杠
powershell 使用SQL文件和PowerShell从数据库中提取数据。设计用于SQL服务器并以CSV格式输出。看到这个链接:h