2011-05-10 14 views
2

私たちのアプリケーションでは、SQL Server 2000 & MySQLを使用しています。 SQL Server 2000の変更があれば、MySQLデータベースを更新したいと思います。このために、MySQL用のリンクサーバーを作成しました。
メッセージ7391、レベル:それは正常に動作しますが、トリガー内で、それはSQL Server 2000 - リンク先サーバ

のようなエラーメッセージを表示[サポート[MySQLの] [ODBC 3.51 ドライバ]オプションの機能ではありません OLE/DBプロバイダが メッセージを返さ] 16は、 状態1、プロシージャ、 ライン6
操作は、OLE DBプロバイダ「MSDASQL」は分散トランザクションを開始できませんでしたので「。行っ

そして、これは私のトリガーであることができませんでした

alter trigger upd_test_enum 
on mtest 
for insert 
as 
begin 
    insert into emsdev...test_enum (id, name, is_active) values (4, 'Test4', 0) 
end 

私を助けてください。

リガード、 ムバラク

+0

コード、XML、またはデータサンプルを投稿する場合は、テキストエディタでこれらの行を強調表示し、エディタツールバーの「コードサンプル」ボタン(「{}」)をクリックして、それ!エラーメッセージを投稿する場合は、**エラーメッセージを適切にフォーマットするためにブロッククォート( '' ')を使用してください**これで、投稿に'
'は必要ありません! –

答えて

3

は、私はそれが働いて得るためにいくつかのことをしなければなりませんでした。また、Win2K SQLサーバーを使用し、MySqlからデータをインポートする。

私がしたことの1つは、3.51.22バージョンのMySql ODBCドライバ(mysql-connector-odbc-3.51.22-win32.msi)をインストールすることでした。

次に、以下の記事は非常に有用だった:http://www.sqlservercentral.com/Forums/Topic340912-146-1.aspx

主なものは、トランザクションをオフにするだけでなく、リンクサーバーを作成するときにDSNを参照することでした。参照を容易にするために、私は以下のこの記事でSQLServerCentralの記事からの指示をコピーして貼り付けます:

は、MySQLデータベース

  1. ためのSSMSでリンクサーバーを作成するのmysqlからMySQLのODBCドライバをダウンロードしてください.com
  2. SQL Serverが存在するサーバーにMySQL ODBCドライバをインストールする - Windowsインストーラファイルをダブルクリックし、指示に従います。

  3. は、MySQL ODBCドライバスタート - >設定を使用してDSNを作成します - > [コントロールパネル] - > [管理ツール] - > [MySQLのODBCドライバを-Select追加キーを押しながらクリックシステムDSN]タブの[データソース(ODBC):クリック [完了]をクリックします。[ログイン]タブで次の操作を行います。 - DSNのわかりやすい名前を入力します。 - [サーバー]テキストボックスにサーバー名またはIPアドレスを入力します。 - MySQLデータベースに接続するために必要なユーザ名をユーザテキストボックスに入力します。 - MySQL データベースに接続するために必要なパスワードをパスワードテキストボックスに入力します。 を開始するデータベースを選択します。Advanceタブで、Flags 1:-Check Do not Optimize の列幅で開始します。一致する行を確認する - 大きい結果を確認する - 圧縮されたプロトコルを使用するかチェックする - INTにBIGINT列をチェックする - 安全なフラグ2をチェックする: - 接続時にプロンプ​​トを表示しない - チェックしないでください# フラグ3: > Serverは右回転をクリックしてオブジェクトの拡大 - SQLDescribeColの-CHECK無効に取引が今

  4. は、MySQLデータベースSSMS(SQL Server Management StudioのためのSSMSでリンクサーバーを作成してテスト]ボタンをクリックする してDSNをテストするためにリターンテーブル名をチェックしてくださいLinked サーバー - >新しいリンクサーバーを選択する一般ページ:-Linked サーバー:リンクサーバーの名前を入力 - サーバータイプ:選択 その他のデータソース - プロバイダー:Sel のMicrosoft OLE DBプロバイダを使用します。ODBCドライバ - 製品名:タイプMySQLDatabase - データソース:タイプ 作成したDSNの名前セキュリティページ - リモートユーザ へのログインとリモートユーザパスワードの提供 - 追加リモートサーバのログイン・マッピングへのローカルサーバーのログインの下 :-Typeプロバイダのリモートユーザのパスワード-Typeリモートユーザ

  5. 変更の名前プロパティのドロップダウンボックスから ローカルログインを-Select MSDASQLプロバイダーの展開 - >右クリックMSDASQL - >プロパティの選択 - 有効なネストされたクエリ - レベル0のみの有効化(これはキッカー) - 有効なプロセスの許可 - 有効'演算子

  6. 機能のSQL Server表領域構成の設定を変更します。 - 有効なOPENROWSETおよびOPENDATASOURCEがサポートされています。

  7. 変更 TCP/IPを介したサービスと接続-Enableローカルおよびリモート接続用のSQL Serverセキュリティ構成の設定と名前付きパイプ

  8. 停止SQL ServerとSQL Serverエージェント

  9. スタートSQL ServerのおよびSQL Serverエージェント

私は、SQLサーバーを再起動する必要が見つかりませんでした。

関連する問題