Dela via


Konvertera MySQL-databaser (MySQLToSQL)

När du har anslutit till MySQL, anslutit till SQL Server eller Azure SQL och angett alternativ för projekt- och datamappning kan du konvertera MySQL-databasobjekt till SQL Server- eller Azure SQL Database-objekt med hjälp av SQL Server Migration Assistant (SSMA) för MySQL.

Konverteringsprocessen

Konvertering av databasobjekt tar objektdefinitionerna från MySQL, konverterar dem till liknande SQL Server- eller Azure SQL-objekt och läser sedan in den här informationen i SSMA-metadata. Informationen läses inte in i SQL Server-instansen. Du kan sedan visa objekten och deras egenskaper med hjälp av SQL Server eller SQL Azure Metadata Explorer.

Under konverteringen skriver SSMA ut utdatameddelanden till fönstret Utdata och felmeddelanden till fönstret Fellista. Använd utdata- och felinformationen för att avgöra om du måste ändra dina MySQL-databaser eller konverteringsprocessen för att få önskat konverteringsresultat.

Ange konverteringsalternativ

Granska alternativen för projektkonvertering i dialogrutan Projektinställningar innan du konverterar objekt. Med den här dialogrutan kan du ange hur SSMA konverterar tabeller och index. Mer information finns i Project Settings (Conversion).

Konverteringsresultat

I följande tabell visas vilka MySQL-objekt som konverteras och de resulterande SQL Server-objekten:

MySQL-objekt Resulterande SQL Server-objekt
Tabeller med beroende objekt som index SSMA skapar tabeller med beroende objekt. Tabellen konverteras med alla index och begränsningar. Index konverteras till separata SQL Server-objekt.

Mappning av rumsliga datatyper kan endast utföras på tabellnodnivå.

Mer information om inställningar för tabellkonvertering finns i Konverteringsinställningar
Funktioner Om funktionen kan konverteras direkt till Transact-SQL skapar SSMA en funktion. I vissa fall måste funktionen konverteras till en lagrad procedur. Detta kan göras med hjälp av funktionskonvertering i Projektinställningar. I det här fallet skapar SSMA en lagrad procedur och en funktion som anropar den lagrade proceduren.

Angivna alternativ:

– Konvertera enligt projektinställningar
– Konvertera till funktion

– Konvertera till lagrad procedur

Mer information om inställningar för funktionskonvertering finns i Konverteringsinställningar
Procedurer Om proceduren kan konverteras direkt till Transact-SQL skapar SSMA en lagrad procedur. I vissa fall måste en lagrad procedur anropas i en autonom transaktion. I det här fallet skapar SSMA två lagrade procedurer: en som implementerar proceduren och en annan som används för att anropa den lagrade implementeringsproceduren.
Databaskonvertering Databaser som MySQL-objekt konverteras inte direkt av SSMA för MySQL. MySQL-databaser behandlas mer som ett schemanamn och alla fysiska parametrar går förlorade under konverteringen. SSMA för MySQL använder Mappa MySQL-databaser till SQL Server-scheman för att mappa objekt från MySQL-databasen till lämpligt SQL Server-databas-/schemapar.
Utlösarkonvertering SSMA skapar utlösare baserat på följande regler:

– BEFORE-utlösare konverteras till I STÄLLET för T-SQL-utlösare

– AFTER-utlösare konverteras till AFTER T-SQL-utlösare med eller utan iterationer per rad.
Visa konvertering SSMA skapar vyer med beroende objekt
Konvertering av uttalande – Varje SQL-instruktionsobjekt kan innehålla en enda MySQL-instruktion (till exempel DDL, DML och andra typer av instruktioner) eller BEGIN ... END-block.

- I en MultiStatement-konvertering: BEGIN ... END-blockskonvertering, kan SQL-instruktionen också innehålla ett BEGIN ... END-block liknande det i en procedur-, funktions- eller utlösardefinition. Dessa block bör konverteras på samma sätt som de konverteras för de enskilda MySQL-instruktionsobjekten.

Konvertera MySQL-databasobjekt

Om du vill konvertera MySQL-databasobjekt väljer du först de objekt som du vill konvertera och be sedan SSMA utföra konverteringen. Om du vill visa utdatameddelanden under konverteringen går du till menyn Visa och väljer Utdata.

Konvertera MySQL-objekt till SQL Server- eller Azure SQL-syntax

  1. I MySQL Metadata Explorer expanderar du MySQL-servern och expanderar sedan Databaser.

  2. Välj objekt som ska konverteras:

    • Om du vill konvertera alla scheman markerar du kryssrutan bredvid Databaser.

    • Om du vill konvertera eller utelämna en databas markerar du kryssrutan bredvid databasnamnet.

    • Om du vill konvertera eller utelämna en kategori av objekt expanderar du ett schema och markerar eller avmarkerar sedan kryssrutan bredvid kategorin.

    • Om du vill konvertera eller utelämna enskilda objekt expanderar du kategorimappen och markerar eller avmarkerar sedan kryssrutan bredvid objektet.

  3. Om du vill konvertera alla markerade objekt högerklickar du på Databaser och väljer Konvertera schema.

    Du kan också konvertera enskilda objekt eller kategorier av objekt genom att högerklicka på objektet eller dess överordnade mapp och sedan välja Konvertera schema.

Visa konverteringsproblem

Vissa MySQL-objekt kanske inte konverteras. Du kan fastställa framgångsgrad för konverteringar genom att titta på sammanfattningsrapporten för konverteringar.

Visa en sammanfattningsrapport

  1. I MySQL Metadata Explorer väljer du Databaser.

  2. I den högra rutan väljer du fliken Rapport.

    Den här rapporten visar sammanfattningsutvärderingsrapporten för alla databasobjekt som utvärderats eller konverterats. Du kan också visa en sammanfattningsrapport för enskilda objekt:

    • Om du vill visa rapporten för ett enskilt schema väljer du databasen i MySQL Metadata Explorer.

    • Om du vill visa rapporten för ett enskilt objekt väljer du objektet i MySQL Metadata Explorer. Objekt som har konverteringsproblem har en röd felikon.

För objekt som misslyckades med konverteringen kan du visa syntaxen som resulterade i konverteringsfelet.

Visa problem med enskilda konverteringar

  1. I MySQL Metadata Explorer expanderar du Databaser.

  2. Expandera databasen som visar en röd felikon.

  3. Under databasen expanderar du en mapp med en röd felikon.

  4. Välj det objekt som har en röd felikon.

  5. I den högra rutan väljer du fliken Rapport.

  6. Överst på fliken Rapport finns en listruta. Om listan visar Statistikändrar du markeringen till Källa.

    SSMA visar källkoden och flera knappar direkt ovanför koden.

  7. Välj knappen Nästa problem. Det här är en röd felikon med en högerriktad pil.

    SSMA markerar den första problematiska källkoden som hittas i det aktuella objektet.

För varje objekt som inte kunde konverteras måste du bestämma vad du vill göra med objektet:

  • Du kan ändra objektet i MySQL-databasen för att ta bort eller ändra problematisk kod. Om du vill läsa in den uppdaterade koden i SSMA måste du uppdatera metadata. Mer information finns i Ansluta till MySQL-

  • Du kan undanta objektet från migrering. I SQL Server eller SQL Azure Metadata Explorer och MySQL Metadata Explorer avmarkerar du kryssrutan bredvid objektet innan du läser in objekten i SQL Server eller Azure SQL och migrerar data från MySQL.