Freigeben über


My SQL-Datenbank s (MySQLToSQL) konvertieren

Nachdem Sie eine Verbindung mit MySQL hergestellt, eine Verbindung mit SQL Server oder Azure SQL hergestellt und Projekt- und Datenzuordnungsoptionen festgelegt haben, können Sie MySQL-Datenbankobjekte in SQL Server- oder Azure SQL-Datenbank-Objekte konvertieren, indem Sie den SQL Server-Migrations-Assistenten (SSMA) für MySQL verwenden.

Der Konvertierungsprozess

Beim Konvertieren von Datenbankobjekten werden die Objektdefinitionen von MySQL verwendet, in ähnliche SQL Server- oder Azure SQL-Objekte konvertiert und diese Informationen dann in die SSMA-Metadaten geladen. Die Informationen werden nicht in die SQL Server-Instanz geladen. Anschließend können Sie die Objekte und deren Eigenschaften mithilfe des SQL Server- oder SQL Azure-Metadaten-Explorers anzeigen.

Während der Konvertierung gibt SSMA Meldungen im Ausgabebereich und Fehlermeldungen im Bereich „Fehlerliste“ aus. Bestimmen Sie anhand der Ausgabe- und Fehlerinformationen, ob Sie Ihre MySQL-Datenbanken oder den Konvertierungsprozess ändern müssen, um die gewünschten Konvertierungsergebnisse zu erhalten.

Festlegen von Konvertierungsoptionen

Überprüfen Sie vor dem Konvertieren von Objekten die Projektkonvertierungsoptionen im Dialogfeld "Projekteinstellungen ". Mithilfe dieses Dialogfelds können Sie festlegen, wie SSMA Tabellen und Indizes konvertiert. Weitere Informationen finden Sie unter Project-Einstellungen (Konvertierung).For more information, see Project Settings (Conversion).

Konvertierungsergebnisse

Die folgende Tabelle zeigt, welche MySQL-Objekte konvertiert werden, und die resultierenden SQL Server-Objekte:

MySQL-Objekte Resultierende SQL Server-Objekte
Tabellen mit abhängigen Objekten wie Indizes SSMA erstellt Tabellen mit abhängigen Objekten. Die Tabelle wird mit allen Indizes und Einschränkungen konvertiert. Indizes werden in separate SQL Server-Objekte konvertiert.

Die Zuordnung räumlicher Datentypen kann nur auf Tabellenknotenebene ausgeführt werden.

Weitere Informationen zu den Einstellungen für die Tabellenkonvertierung finden Sie unter "Konvertierungseinstellungen".
Funktionen Wenn die Funktion direkt in Transact-SQL konvertiert werden kann, erstellt SSMA eine Funktion. In einigen Fällen muss die Funktion in eine gespeicherte Prozedur konvertiert werden. Dies kann mithilfe der Funktionskonvertierung in den Projekteinstellungen erfolgen. In diesem Fall erstellt SSMA eine gespeicherte Prozedur und eine Funktion, die die gespeicherte Prozedur aufruft.

Auswahlmöglichkeiten:

- Konvertieren gemäß Projekteinstellungen
- In Funktion konvertieren

- In gespeicherte Prozedur konvertieren

Weitere Informationen zu Funktionskonvertierungseinstellungen finden Sie unter Konvertierungseinstellungen
Vorgehensweisen Wenn die Prozedur direkt in Transact-SQL konvertiert werden kann, erstellt SSMA eine gespeicherte Prozedur. In einigen Fällen muss eine gespeicherte Prozedur in einer autonomen Transaktion aufgerufen werden. In diesem Fall erstellt SSMA zwei gespeicherte Prozeduren: eine, die die Prozedur implementiert, und eine weitere, die zum Aufrufen der implementierenden gespeicherten Prozedur verwendet wird.
Datenbankkonvertierung Datenbanken als MySQL-Objekte werden nicht direkt von SSMA für MySQL konvertiert. MySQL-Datenbanken werden eher wie ein Schemaname behandelt, und alle physischen Parameter gehen während der Konvertierung verloren. SSMA für MySQL verwendet Zuordnungs-My SQL-Datenbank s zu SQL Server-Schemas, um Objekte aus der MySQL-Datenbank dem entsprechenden SQL Server-Datenbank-/Schemapaar zuzuordnen.
Triggerkonvertierung SSMA erstellt Trigger anhand der folgenden Regeln:

- BEFORE-Trigger werden IN ANSTELLE VON T-SQL-Triggern konvertiert

- AFTER-Trigger werden in AFTER T-SQL-Trigger mit oder ohne Iterationen pro Zeilen konvertiert.
Ansichtskonvertierung SSMA erstellt Ansichten mit abhängigen Objekten
Konvertierung von Anweisungen - Jedes SQL-Anweisungsobjekt kann eine einzelne MySQL-Anweisung (z. B. DDL, DML und andere Typen von Anweisungen) oder BEGIN enthalten... END-Block.

- In einer MultiStatement-Konvertierung:BEGIN ... END-Blockkonvertierung, die SQL-Anweisung kann auch eine BEGIN ... END-Block wie einer in Prozedur, Funktion oder Triggerdefinition. Diese Blöcke sollten auf die gleiche Weise konvertiert werden, wie sie für die einzelnen MySQL-Anweisungsobjekte konvertiert werden.

Konvertieren von MySQL-Datenbankobjekten

Um MySQL-Datenbankobjekte zu konvertieren, wählen Sie zuerst die Objekte aus, die Sie konvertieren möchten, und lassen Sie dann SSMA die Konvertierung durchführen. Um Ausgabemeldungen während der Konvertierung anzuzeigen, wählen Sie im Menü "Ansicht" die Option "Ausgabe" aus.

Konvertieren von MySQL-Objekten in SQL Server- oder Azure SQL-Syntax

  1. Erweitern Sie im MySQL-Metadaten-Explorer den MySQL-Server, und erweitern Sie dann Datenbanken.

  2. Zu konvertierende Objekte auswählen:

    • Um alle Schemas zu konvertieren, aktivieren Sie das Kontrollkästchen neben "Datenbanken".

    • Wenn Sie eine Datenbank konvertieren oder weglassen möchten, aktivieren Sie das Kontrollkästchen neben dem Datenbanknamen.

    • Wenn Sie eine Kategorie von Objekten konvertieren oder weglassen möchten, erweitern Sie ein Schema, und aktivieren oder deaktivieren Sie dann das Kontrollkästchen neben der Kategorie.

    • Wenn Sie einzelne Objekte konvertieren oder weglassen möchten, erweitern Sie den Kategorieordner, und aktivieren oder deaktivieren Sie dann das Kontrollkästchen neben dem Objekt.

  3. Wenn Sie alle ausgewählten Objekte konvertieren möchten, klicken Sie mit der rechten Maustaste auf "Datenbanken", und wählen Sie "Schema konvertieren" aus.

    Sie können auch einzelne Objekte oder Kategorien von Objekten konvertieren, indem Sie mit der rechten Maustaste auf das Objekt oder den übergeordneten Ordner klicken und dann "Schema konvertieren" auswählen.

Konvertierungsprobleme anzeigen

Einige MySQL-Objekte werden möglicherweise nicht konvertiert. Sie können die Erfolgsraten der Konvertierung ermitteln, indem Sie den Zusammenfassenden Konvertierungsbericht anzeigen.

Anzeigen eines Zusammenfassungsberichts

  1. Wählen Sie im MySQL-Metadaten-Explorer "Datenbanken" aus.

  2. Wählen Sie im rechten Bereich die Registerkarte "Bericht " aus.

    Dieser Bericht zeigt den Zusammenfassenden Bewertungsbericht für alle Datenbankobjekte, die bewertet oder konvertiert wurden. Sie können auch einen Zusammenfassungsbericht für einzelne Objekte anzeigen:

    • Um den Bericht für ein einzelnes Schema anzuzeigen, wählen Sie die Datenbank im MySQL-Metadaten-Explorer aus.

    • Um den Bericht für ein einzelnes Objekt anzuzeigen, wählen Sie das Objekt im MySQL-Metadaten-Explorer aus. Objekte mit Konvertierungsproblemen weisen ein rotes Fehlersymbol auf.

Bei Objekten, bei denen die Konvertierung fehlgeschlagen ist, können Sie die Syntax anzeigen, die zu einem Konvertierungsfehler führte.

Anzeigen einzelner Konvertierungsprobleme

  1. Erweitern Sie im MySQL-Metadaten-Explorer Datenbanken.

  2. Erweitern Sie die Datenbank, die ein rotes Fehlersymbol anzeigt.

  3. Erweitern Sie unter der Datenbank einen Ordner mit einem roten Fehlersymbol.

  4. Wählen Sie das Objekt mit einem roten Fehlersymbol aus.

  5. Wählen Sie im rechten Bereich die Registerkarte "Bericht " aus.

  6. Oben auf der Registerkarte "Bericht " befindet sich eine Dropdownliste. Wenn in der Liste "Statistik" angezeigt wird, ändern Sie die Auswahl in "Quelle".

    SSMA zeigt den Quellcode und mehrere Schaltflächen direkt über dem Code an.

  7. Wählen Sie die Schaltfläche "Nächstes Problem " aus. Dies ist ein rotes Fehlersymbol mit einem nach rechts zeigenden Pfeil.

    SSMA hebt den ersten problematischen Quellcode hervor, der im aktuellen Objekt gefunden wird.

Für jedes Element, das nicht konvertiert werden konnte, müssen Sie bestimmen, was Sie mit diesem Objekt tun möchten:

  • Sie können das Objekt in der MySQL-Datenbank ändern, um problematischen Code zu entfernen oder zu überarbeiten. Um den aktualisierten Code in SSMA zu laden, müssen Sie die Metadaten aktualisieren. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit MySQL

  • Sie können das Objekt aus der Migration ausschließen. Deaktivieren Sie im SQL Server- oder SQL Azure-Metadaten-Explorer und mySQL-Metadaten-Explorer das Kontrollkästchen neben dem Element, bevor Sie die Objekte in SQL Server oder Azure SQL laden und Daten aus MySQL migrieren.