2

SQL Server 2012 を使用しています (120.120.55.15)。

今日、MySQL サーバー (120.120.55.30) を SQL サーバーにリンクし、「MYSQL」という名前を付けました。

オブジェクト エクスプローラーでは、すべて問題ないようです。MySQLサーバーのデータベース「exampleDataBase」とその中のテーブルが表示されます。

しかし、次のように選択クエリを実行しようとすると:

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

間違いがあります:

メッセージ 7399、レベル 16、状態 1、行 1 リンク サーバー "MYSQL" の OLE DB プロバイダー "MSDASQL" がエラーを報告しました。プロバイダーは、エラーに関する情報を提供しませんでした。メッセージ 7350、レベル 16、状態 2、行 1 リンク サーバー "MYSQL" の OLE DB プロバイダー "MSDASQL" から列情報を取得できません。

リンクされた MySQL サーバーを使用するには、さらに何を行う必要がありますか?

4

7 に答える 7

16

決定を見つけました:

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

ブラケットなし!

私にとっては奇妙ですが、うまくいきます...

于 2013-05-22T10:42:07.570 に答える
3

これは、MY SQL 3.51 64ビットODBCドライバーを使用してMS SQL Server 2008 64ビットで同じ問題と戦った後、私にとってはうまくいきました

SELECT *
FROM OPENQUERY
(
   linked_server_name,
   'SELECT * FROM linked_database_name.linked_table_name'
)
于 2013-10-17T18:31:51.213 に答える
1

データベース名とテーブル名の間にスキーマ名が必要になる場合があります。

SELECT * 
FROM   openquery
        (
        MYSQL, 
        '
         SELECT * 
         FROM [exampleDataBase].**[dbo]**.[msProcMatrix]
        '
        )
于 2013-05-22T10:12:43.313 に答える
1

リンクサーバーで作業するときは、決して使用しませんSelect * From

で試してくださいSelect Column1, Column2, ... ColumnN From

私にとってはいつもうまくいきます。

于 2014-01-28T14:41:24.243 に答える
0

デフォルトのカタログ (「exampleDataBase」) が ODBC で構成されている場合は、次のようにも機能します。

select * from MYSQL...msProcMatrix

于 2016-02-03T17:40:34.503 に答える