Delen via


Converteren van MySQL-databases (MySQLToSQL)

Nadat u verbinding hebt gemaakt met MySQL, maakt u verbinding met SQL Server of Azure SQL en stelt u opties voor project- en gegevenstoewijzing in, kunt u MySQL-databaseobjecten converteren naar SQL Server- of Azure SQL Database-objecten met behulp van SQL Server Migration Assistant (SSMA) voor MySQL.

Het conversieproces

Het converteren van databaseobjecten neemt de objectdefinities uit MySQL, zet ze om naar vergelijkbare SQL Server- of Azure SQL-objecten en laadt deze informatie vervolgens in de metagegevens van SSMA. De informatie wordt niet geladen in het exemplaar van SQL Server. Vervolgens kunt u de objecten en de bijbehorende eigenschappen weergeven met behulp van SQL Server of SQL Azure Metadata Explorer.

Tijdens de conversie drukt SSMA uitvoerberichten af naar het deelvenster Uitvoer en foutberichten naar het deelvenster Foutenlijst. Gebruik de uitvoer- en foutgegevens om te bepalen of u uw MySQL-databases of het conversieproces moet wijzigen om de gewenste conversieresultaten te verkrijgen.

Conversieopties instellen

Voordat u objecten converteert, controleert u de opties voor projectconversie in het dialoogvenster Projectinstellingen. Met dit dialoogvenster kunt u instellen hoe SSMA tabellen en indexen converteert. Zie projectinstellingen (conversie)voor meer informatie.

Conversieresultaten

In de volgende tabel ziet u welke MySQL-objecten worden geconverteerd en de resulterende SQL Server-objecten:

MySQL-objecten Resulterende SQL Server-objecten
Tabellen met afhankelijke objecten, zoals indexen SSMA maakt tabellen met afhankelijke objecten. De tabel wordt geconverteerd met alle indexen en beperkingen. Indexen worden geconverteerd naar afzonderlijke SQL Server-objecten.

Toewijzing van ruimtelijke gegevenstypen kan alleen worden uitgevoerd op het niveau van een tabelknooppunt.

Voor meer informatie over de conversie-instellingen van tabellen, zie Conversie-instellingen
Functies Als de functie rechtstreeks kan worden geconverteerd naar Transact-SQL, maakt SSMA een functie. In sommige gevallen moet de functie worden geconverteerd naar een opgeslagen procedure. U kunt dit doen met behulp van functieconversie in Projectinstellingen. In dit geval maakt SSMA een opgeslagen procedure en een functie die de opgeslagen procedure aanroept.

Gegeven keuzes:

- Converteren volgens projectinstellingen
- Converteren naar functie

- Converteren naar opgeslagen procedure

Zie voor meer informatie over conversie van functies de Conversie-instellingen
Procedures Als de procedure rechtstreeks kan worden geconverteerd naar Transact-SQL, maakt SSMA een opgeslagen procedure. In sommige gevallen moet een opgeslagen procedure worden aangeroepen in een autonome transactie. In dit geval maakt SSMA twee opgeslagen procedures: een die de procedure implementeert en een andere die wordt gebruikt voor het aanroepen van de opgeslagen implementatieprocedure.
Database-conversie Databases als MySQL-objecten worden niet rechtstreeks geconverteerd door SSMA for MySQL. MySQL-databases worden meer behandeld als een schemanaam en alle fysieke parameters gaan verloren tijdens de conversie. SSMA for MySQL maakt gebruik van MySQL-databases toewijzen aan SQL Server-schema's om objecten van mySQL-database toe te wijzen aan het juiste SQL Server-database-/schemapaar.
Triggerconversie SSMA maakt triggers op basis van de volgende regels:

- VOORDAT triggers worden geconverteerd naar IN PLAATS VAN T-SQL-triggers

- AFTER-triggers worden geconverteerd naar AFTER T-SQL-triggers met of zonder iteraties per rijen.
Conversie weergeven SSMA maakt weergaven met afhankelijke objecten
Conversie van verklaring - Elk SQL-instructieobject kan één MySQL-instructie bevatten (zoals DDL, DML en andere typen instructies) of BEGIN ... END-blok.

- In een MultiStatement conversie: BEGIN ... END-blokomzetting, kan de SQL-instructie ook een BEGIN ... END-blok bevatten, zoals in een procedure-, functie- of triggerdefinitie. Deze blokken moeten op dezelfde manier worden geconverteerd als voor de afzonderlijke MySQL-instructieobjecten.

MySQL-databaseobjecten converteren

Als u MySQL-databaseobjecten wilt converteren, selecteert u eerst de objecten die u wilt converteren en voert u vervolgens SSMA de conversie uit. Tijdens de conversie, als u uitvoerberichten wilt weergeven, selecteert u in het menu Weergave de optie Uitvoer.

MySQL-objecten converteren naar SQL Server of Azure SQL-syntaxis

  1. Vouw in MySQL Metadata Explorer de MySQL-server uit en vouw vervolgens Databasesuit.

  2. Objecten selecteren die u wilt converteren:

    • Als u alle schema's wilt converteren, schakelt u het selectievakje in naast Databases.

    • Als u een database wilt converteren of weglaten, schakelt u het selectievakje naast de databasenaam in.

    • Als u een categorie objecten wilt converteren of weglaten, vouwt u een schema uit en schakelt u het selectievakje naast de categorie in of uit.

    • Als u afzonderlijke objecten wilt converteren of weglaten, vouwt u de categoriemap uit en schakelt u het selectievakje naast het object in of uit.

  3. Als u alle geselecteerde objecten wilt converteren, klikt u met de rechtermuisknop op Databases en selecteert u Schema converteren.

    U kunt ook individuele objecten of objectcategorieën converteren door met de rechtermuisknop op het object of de hoofdmap te klikken en vervolgens Convert Schemate selecteren.

Conversieproblemen weergeven

Sommige MySQL-objecten worden mogelijk niet geconverteerd. U kunt de conversiepercentages bepalen door het overzichtsconversierapport weer te geven.

Een overzichtsrapport weergeven

  1. Selecteer in MySQL Metadata Explorer Databases.

  2. Selecteer in het rechterdeelvenster het tabblad Rapport.

    Dit rapport bevat het overzichtsevaluatierapport voor alle databaseobjecten die zijn geëvalueerd of geconverteerd. U kunt ook een overzichtsrapport voor afzonderlijke objecten weergeven:

    • Als u het rapport voor een afzonderlijk schema wilt weergeven, selecteert u de database in MySQL Metadata Explorer.

    • Als u het rapport voor een afzonderlijk object wilt weergeven, selecteert u het object in MySQL Metadata Explorer. Objecten met conversieproblemen hebben een rood foutpictogram.

Voor objecten waarvoor de conversie is mislukt, kunt u de syntaxis weergeven die heeft geresulteerd in de conversiefout.

Problemen met afzonderlijke conversies weergeven

  1. Vouw in MySQL Metadata Explorer Databasesuit.

  2. Vouw de database uit met een rood foutpictogram.

  3. Vouw onder de database een map met een rood foutpictogram uit.

  4. Selecteer het object met een rood foutpictogram.

  5. Selecteer in het rechterdeelvenster het tabblad Rapport.

  6. Boven aan het tabblad Rapport bevindt zich een vervolgkeuzelijst. Als in de lijst Statistiekenwordt weergegeven, verandert u de selectie naar Bron.

    SSMA geeft de broncode en verschillende knoppen direct boven de code weer.

  7. Selecteer de knop Volgende probleem. Dit is een rood foutpictogram met een pijl naar rechts.

    SSMA markeert de eerste problematische broncode die in het huidige object wordt gevonden.

Voor elk item dat niet kan worden geconverteerd, moet u bepalen wat u met dat object wilt doen:

  • U kunt het object in de MySQL-database wijzigen om problematische code te verwijderen of te herzien. Als u de bijgewerkte code in SSMA wilt laden, moet u de metagegevens bijwerken. Zie Verbinding maken met MySQL- voor meer informatie

  • U kunt het object uitsluiten van migratie. Schakel in SQL Server of SQL Azure Metadata Explorer en MySQL Metadata Explorer het selectievakje uit naast het item voordat u de objecten in SQL Server of Azure SQL laadt en gegevens migreert vanuit MySQL.