SELECT * FROM Linked MySQL server

匿名 (未验证) 提交于 2019-12-03 01:08:02

问题:

I have a SQL Server 2012.(120.120.55.15)

Today I linked MySQL server(120.120.55.30) to my SQLServer and gave it a name "MYSQL".

In Object Explorer everything seems fine. I can see MySQL server's database "exampleDataBase" and tables in it.

But when I try to run select query like this:

SELECT *  FROM   openquery         (         MYSQL,          '          SELECT *           FROM [exampleDataBase].[msProcMatrix]         '         ) 

I get a mistake:

Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "MSDASQL" for linked server "MYSQL" reported an error. The provider did not give any information about the error. Msg 7350, Level 16, State 2, Line 1 Cannot get the column information from OLE DB provider "MSDASQL" for linked server "MYSQL".

What should be additionally done to use my linked MySQL server?

回答1:

Found the decision:

SELECT *  FROM openquery(MYSQL, 'SELECT * FROM exampleDataBase.msProcMatrix') 

Without brackets!

Strange for me but works...



回答2:

This worked great for me after fighting the same issue on MS SQL Server 2008 64bit using the MY SQL 3.51 64 bit ODBC driver

SELECT * FROM OPENQUERY (    linked_server_name,    'SELECT * FROM linked_database_name.linked_table_name' ) 


回答3:

When I working with linked server, I never use Select * From.

Try with Select Column1, Column2, ... ColumnN From.

Always works fine for me.



回答4:

You might need a schema name between the database name and the table name.

SELECT *  FROM   openquery         (         MYSQL,          '          SELECT *           FROM [exampleDataBase].**[dbo]**.[msProcMatrix]         '         ) 


回答5:

If the default catalog ("exampleDataBase") is configured in ODBC, the following will work as well:

select * from MYSQL...msProcMatrix



回答6:

You Can try this query .

EXEC ( 'SELECT * FROM [exampleDataBase].[msProcMatrix]' ) AT MYSQL



回答7:

Please try the statement in the format below .. for me it works very well

SELECT *  FROM   openquery         (         MYSQL,          '          SELECT *           FROM [MYSQL]...[exampleDataBase].[msProcMatrix]         '         ) 

Including the extra levels in the name may solve your issue.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!