次の方法で共有


MySQL データベースの変換 (MySQLToSQL)

MySQL に接続し、SQL Server または Azure SQL に接続し、プロジェクトとデータ マッピングのオプションを設定したら、MySQL データベース オブジェクトを SQL Server または Azure SQL Database オブジェクトに変換できます。

変換プロセス

データベース オブジェクトの変換では、MySQL からオブジェクト定義を取得し、類似の SQL Server または Azure SQL オブジェクトに変換後、この情報を SSMA メタデータに読み込みます。 その情報は、SQL Server のインスタンスには読み込まれません。 その後、SQL Server または SQL Azure メタデータ エクスプローラーを使用して、オブジェクトとそのプロパティを表示できます。

変換中に SSMA によって、出力メッセージは出力ペイン、エラー メッセージはエラー一覧ペインに出力されます。 出力とエラー情報を使用して、目的の変換結果を取得するために MySQL データベースまたは変換プロセスを変更する必要があるかどうかを判断します。

変換オプションの設定

オブジェクトを変換する前に、[プロジェクト設定] ダイアログ ボックスのプロジェクト変換オプションを確認します。 このダイアログ ボックスを使用すると、SSMA によるテーブルとインデックスの変換方法を設定できます。 詳細については、、「プロジェクトの設定 (変換) (MySQLToSQL)」を参照してください。

変換結果

次の表は、変換される MySQL オブジェクトと、結果の SQL Server オブジェクトを示しています。

MySQL オブジェクト 結果の SQL Server オブジェクト
インデックスなどの依存オブジェクトを含むテーブル SSMA によって、依存オブジェクトを含むテーブルが作成されます。 テーブルは、すべてのインデックスと制約で変換されます。 インデックスは、別の SQL Server オブジェクトに変換されます。

空間データ型マッピング は、テーブル ノード レベルでのみ実行できます。

テーブル変換の設定の詳細については、「変換の設定」を参照してください。
関数 関数を Transact-SQL に直接変換できる場合は、SSMA によって関数が作成されます。 場合によっては、関数をストアド プロシージャに変換する必要があります。 これは、プロジェクト設定で関数変換を使用して行うことができます。 この場合、SSMA によってストアド プロシージャが作成され、ストアド プロシージャを呼び出す関数が作成されます。

選択肢:

- プロジェクト設定に従って変換する
- CONVERT 関数
- ストアド プロシージャへの変換

関数変換設定の詳細については、「変換設定」を参照してください
手順 プロシージャを Transact-SQL に直接変換できる場合は、SSMA によってストアド プロシージャが作成されます。 場合によっては、自律的なトランザクション内でストアド プロシージャを呼び出す必要があります。 この場合は、SSMA によって 2 つのストアド プロシージャが作成されます。1 つはプロシージャを実装するストアド プロシージャで、もう 1 つは実装ストアド プロシージャを呼び出すために使用されるものです。
データ型の変換 MySQL オブジェクトとしてのデータベースは、SSMA for MySQL によって直接変換されません。 MySQL データベースはスキーマ名のように扱われ、変換中にすべての物理パラメーターが失われます。 SSMA for MySQL では、MySQL データベースから SQL Server スキーマ (MySQLToSQL) へのマッピングを使用して、MySQL データベースのオブジェクトを適切な SQL Server データベース/スキーマ ペアにマップします。
トリガーの変換 SSMA では、以下のルールに基づいて、トリガーが作成されます。

- BEFORE トリガーは INSTEAD OF T-SQL トリガーに変換されます。
- AFTER トリガーは、行ごとの反復の有無にかかわらず AFTER T-SQL トリガーに変換されます。
変換の表示 SSMA によって、依存オブジェクトを含むビューが作成されます
ステートメントの変換 - 各 SQL ステートメント オブジェクトには、1 つの MySQL ステートメント (DDL、DML、その他の種類のステートメントなど) または BEGIN ... を含める場合があります。END ブロック。
- MultiStatement 変換で:BEGIN ...END ブロック変換では、SQL ステートメントに BEGIN ...プロシージャ、関数、またはトリガーの定義の 1 つのような END ブロック。 これらのブロックは、単一の MySQL ステートメント オブジェクトに対して変換されるのと同じ方法で変換する必要があります。

MySQL データベース オブジェクトの変換

MySQL データベース オブジェクトを変換するには、最初に変換するオブジェクトを選んでから、SSMA で変換を実行します。 変換中に出力メッセージを表示するには、[表示] メニューの [出力] を選びます

MySQL オブジェクトの SQL Server または SQL Azure 構文への変換

  1. MySQL メタデータ エクスプローラーで、MySQL サーバーを展開し、[データベース] を展開します。

  2. 変換するオブジェクトを選びます。

    • すべてのスキーマを変換するには、[データベース] の横にあるチェック ボックスをオンにします。

    • データベースを変換する、または省略するには、データベース名の横にあるチェック ボックスを選択します。

    • オブジェクトのカテゴリを変換または省略するには、スキーマを展開し、カテゴリの横にあるチェック ボックスをオンまたはオフにします。

    • 個々のオブジェクトを変換または省略するには、カテゴリ フォルダーを展開し、オブジェクトの横にあるチェック ボックスをオンまたはオフにします。

  3. 選択したすべてのオブジェクトを変換するには、[データベース] を右クリックし、[スキーマの変換] を選択します。

    オブジェクトまたはその親フォルダーを右クリックし、[スキーマの変換] を選んで、オブジェクトの個々のオブジェクトまたはカテゴリを変換することもできます。

変換の問題を表示する

一部の MySQL オブジェクトは変換されない場合があります。 コンバージョンの成功率を確認するには、サマリー変換レポートを表示します。

要約レポートを表示する

  1. MySQL メタデータ エクスプローラーで [データベース] を選択します。

  2. 右側のペインで [ExpressRoute] タブを選びます。

    このレポートには、評価または変換されたすべてのデータベース オブジェクトの概要評価レポートが表示されます。 個々のオブジェクトの概要レポートを表示することもできます。

    • 個々のスキーマのレポートを表示するには、MySQL メタデータ エクスプローラーでデータベースを選びます。

    • 個々のオブジェクトのレポートを表示するには、MySQL メタデータ エクスプローラーでオブジェクトを選びます。 変換に問題があるオブジェクトには、赤いエラー アイコンがあります。

変換に失敗したオブジェクトの場合は、変換エラーの原因になった構文を表示できます。

個々の変換の問題を表示する

  1. MySQL メタデータ エクスプローラーで、[データベース] を展開します。

  2. 赤いエラー アイコンが表示されているデータベースを展開します。

  3. データベースの下で、赤いエラー アイコンがあるフォルダーを展開します。

  4. 赤いエラー アイコンが表示されているオブジェクトを選びます。

  5. 右側のペインで [ExpressRoute] タブを選びます。

  6. [レポート] タブの上部にはドロップダウン リストがあります。 一覧に [統計] が表示されている場合は、選択内容を [ソース] に変更します。

    SSMA では、ソース コードと、コードのすぐ上に複数のボタンが表示されます。

  7. [次へ] ボタンを選びます。 これは、右を指す矢印が付いた赤いエラー アイコンです。

    SSMA では、現在のオブジェクトで検出された最初の問題のあるソース コードが強調表示されます。

変換できなかった項目ごとに、そのオブジェクトで何を行うかを決定する必要があります。

  • MySQL データベースでオブジェクトを変更して、問題のあるコードを削除または修正できます。 更新されたコードを SSMA に読み込むには、メタデータを更新する必要があります。 詳細については、「MySQL への接続 (MySQLToSQL)」を参照してください。

  • 移行からオブジェクトを除外できます。 SQL Server または SQL Azure メタデータ エクスプローラーと MySQL メタデータ エクスプローラーで、SQL Server または Azure SQL にオブジェクトを読み込み、MySQL からデータを移行する前に、項目の横にあるチェック ボックスのチェックを外します。

関連項目

次のステップ