2013-05-22 9 views
1

У меня есть SQL Server 2012. (120.120.55.15)SELECT * FROM Linked сервера MySQL

Сегодня я связан сервер MySQL (120.120.55.30) на мой SQLServer и дал ему имя "MYSQL".

В обозревателе объектов все кажется прекрасным. Я могу видеть MySQL база сервера "exampleDataBase" и таблицы в нем.

Но когда я пытаюсь запустить запрос на выборку, как это:

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

Я получаю ошибку:

Msg 7399, уровень 16, состояние 1, строка 1 Поставщик OLE DB «MSDASQL "для связанный сервер" MYSQL "сообщил об ошибке. Провайдер не предоставил ни одной информацию об ошибке. Msg 7350, уровень 16, состояние 2, строка 1 Не удается получить информацию о столбцах от поставщика OLE DB «MSDASQL» для связанного сервера «MYSQL».

Что нужно сделать, чтобы использовать мой связанный сервер MySQL?

ответ

7

Найдено решение:

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

без скобок!

Странно для меня, но работает ...

+1

Это правильный способ избежать имен столбцов в MySQL (NOT MSSQL!) См. Http://stackoverflow.com/a/2889884/244067 – Filip

1

Возможно, вам потребуется имя схемы между именем базы данных и именем таблицы.

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

Mariau, найти мой ответ ниже. – Almazini

3

Это работал большим для меня после того, как бороться с таким же вопросом на MS SQL Server 2008 64bit с использованием 3,51 64 разрядного драйвера MY SQL ODBC

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

Когда Я работаю со связанным сервером, я никогда не использую Select * From.

Попробуйте с Select Column1, Column2, ... ColumnN From.

Всегда работает отлично для меня.

0

Если каталог по умолчанию ("exampleDataBase") выполнен в ODBC, следующий будет работать, а также:

выберите * из MYSQL ... msProcMatrix

Смежные вопросы