SELECT*FROM MySQL链接服务器使用SQL Server而不使用OpenQuery

Kev*_*vin 12 mysql sql-server linked-server openquery

我正在尝试使用查询MySQL链接服务器SQL Server.

以下查询运行正常.

SELECT * FROM OPENQUERY([Linked_Server], 'SELECT * FROM Table_Name')
Run Code Online (Sandbox Code Playgroud)

是否可以在不使用OpenQuery调用的情况下运行相同的查询?

Kev*_*vin 17

在这里找到答案.现在我可以使用三点符号查询.谢谢

http://www.sparkalyn.com/2008/12/invalid-schema-error/

转到提供程序选项屏幕在SQL Server 2005中,您可以在链接服务器上方的文件夹中看到提供程序列表(假设您具有适当的权限).右键单击MSDASQL并转到属性.在SQL Server 2000中,提供程序选项按钮位于创建链接服务器的对话框中.选中"仅限零级"的复选框


vah*_*rat 10

你可以使用下面的声明

select*from [linkedServerName] ... [databaseName.TableName]

但在执行上面的代码之前,你必须做一些改变..

在SQL Server Management Studio中,转到"链接服务器"文件夹,打开Providers文件夹,找到MSDASQL并获取它的属性然后选中"Level Zero Only"按Ok ...然后执行上面的查询并享受它!

  • 恕我直言,这篇文章(和 PST 的一篇)是最重要的一篇:语法很棘手,直到我意识到 [d​​atabase.table] 必须从 SQLServer 的角度引用为单个实体之前,我无法让我的查询工作. (2认同)

duf*_*ffn 5

您应该能够直接查询链接服务器。

\n
select * from mylinkedserver.database.schema.mytable\n
Run Code Online (Sandbox Code Playgroud)\n

编辑:

\n

尝试使用本文中提到的三点符号:\n http://www.ideaexcursion.com/2009/02/25/howto-setup-sql-server-linked-server-to-mysql/

\n
SELECT * FROM MYSQLAPP...tables\n
Run Code Online (Sandbox Code Playgroud)\n
\n

消息 7399,级别 16,状态 1,第 1 行链接服务器“MySQLApp”的 OLE DB 提供程序“MSDASQL”报告错误。提供商未提供\n有关该错误的任何信息。消息 7312,级别 16,状态 1,第 1 行\n对链接服务器“MySQLApp”的 OLE DB 提供程序“MSDASQL”的架构或目录使用无效。提供了由四部分组成的名称,但\n提供程序未公开使用目录或\n架构所需的接口。

\n

此 \xe2\x80\x9cfour-part name\xe2\x80\x9d 错误是由于 MySQL ODBC 驱动程序中的限制造成的。您无法使用点\n符号切换目录/模式。相反,您必须为要访问的不同目录注册另一个 DSN 和\n链接服务器。请务必遵循示例查询中注明的三点符号。

\n
\n

  • 当我执行 SELECT * FROM [Linked_Server].Database_name.DBO.Table_Name 时,出现以下错误:链接服务器“Linked_Sever”的 OLE DB 提供程序“MSDASQL”的架构或目录使用无效。提供了由四部分组成的名称,但提供程序未公开使用目录或模式所需的接口。 (2认同)

小智 5

尝试这样:

SELECT * FROM [Linked_Server]...[db_name.table_name]
Run Code Online (Sandbox Code Playgroud)

工作正常,但是存在转换数据类型的问题。使用起来更安全,更可靠。

SELECT * FROM OPENQUERY([Linked_Server], 'SELECT * FROM db_name.table_name')
Run Code Online (Sandbox Code Playgroud)


小智 5

使用这个有一个重要的点:

SELECT * FROM [Linked_Server]...[db_name.table_name]
Run Code Online (Sandbox Code Playgroud)

你必须继续

链接服务器 -> 提供者 -> MSDASQL:

并确保这三个选项已被选中

  • 动态参数
  • 仅零级
  • 允许进程内

https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=153024