Condividi tramite


Conversione di database MySQL (MySQLToSQL)

Dopo aver effettuato la connessione a MySQL, a SQL Server o ad Azure SQL e aver configurato le opzioni di mapping di progetti e dati, è possibile convertire gli oggetti di database MySQL in oggetti SQL Server o database SQL di Azure.

Processo di conversione

La conversione degli oggetti di database ottiene le definizioni degli oggetti da MySQL, le converte in oggetti di SQL Server o Azure SQL simili e quindi carica queste informazioni nei metadati di SSMA. Non carica le informazioni nell'istanza di SQL Server. È quindi possibile visualizzare gli oggetti e le relative proprietà usando Esplora metadati di SQL Server o SQL Azure.

Durante la conversione, SSMA visualizza i messaggi di output nel riquadro di output e i messaggi di errore nel riquadro Elenco errori. Usare le informazioni sull'output e sugli errori per determinare se è necessario modificare i database MySQL o il processo di conversione per ottenere i risultati della conversione desiderati.

Configurare le opzioni di conversione

Prima di convertire gli oggetti, esaminare le opzioni di conversione del progetto nella finestra di dialogo Impostazioni progetto. Usando questa finestra di dialogo, è possibile impostare il modo in cui SSMA converte tabelle e indici. Per ulteriori informazioni vedere Impostazioni progetto (Conversione) (MySQLToSQL).

Risultati della conversione

La tabella seguente illustra gli oggetti MySQL convertiti e gli oggetti di SQL Server risultanti:

Oggetti MySQL Oggetti SQL Server risultanti
Tabelle con oggetti dipendenti come indici SSMA crea tabelle con oggetti dipendenti. La tabella viene convertita con tutti gli indici e i vincoli. Gli indici vengono convertiti in oggetti SQL Server separati.

Il mapping dei tipi di dati spaziali può essere eseguito solo a livello di nodo della tabella.

Per altre informazioni sulle impostazioni di conversione tabella, vedere Impostazioni conversione
Funzioni Se la funzione può essere convertita direttamente in Transact-SQL, SSMA crea una funzione. In alcuni casi, la funzione deve essere convertita in una stored procedure. A tale scopo, è possibile usare la conversione di funzioni in Impostazioni progetto. In questo caso, SSMA crea una stored procedure e una funzione che chiama la stored procedure.

Scelte date:

- Eseguire la conversione in base alle impostazioni del progetto
- Conversione in funzione
- Conversione in stored procedure

Per altre informazioni sulle impostazioni di conversione delle funzioni, vedere Impostazioni conversione
Procedure Se la procedura può essere convertita direttamente in Transact-SQL, SSMA crea una stored procedure. In alcuni casi, una stored procedure deve essere chiamata in una transazione autonoma. In questo caso, SSMA crea due stored procedure: una che implementa la procedura e un'altra usata per chiamare la stored procedure di implementazione.
Conversione del database I database come oggetti MySQL non vengono convertiti direttamente da SSMA per MySQL. I database MySQL vengono considerati più simili a un nome di schema e tutti i parametri fisici vengono persi durante la conversione. SSMA per MySQL usa Mapping dei database MySQL agli schemi SQL Server (MySQLToSQL) per eseguire il mapping degli oggetti dal database MySQL alla coppia di database/schema di SQL Server appropriata.
Conversione trigger SSMA crea trigger in base alle regole seguenti:

- I trigger BEFORE vengono convertiti in trigger INSTEAD OF T-SQL
- I trigger AFTER vengono convertiti in trigger AFTER T-SQL con o senza iterazioni per ogni riga.
Visualizzazione conversione SSMA crea viste con oggetti dipendenti
Conversione di istruzioni - Ogni oggetto istruzione SQL può contenere una singola istruzione MySQL (ad esempio DDL, DML e altri tipi di istruzioni) o il blocco BEGIN ... END.
- In una conversione multistatement del blocco BEGIN ... END, l'istruzione SQL può contenere anche un blocco BEGIN ... END come uno nella definizione di routine, funzione o trigger. Questi blocchi devono essere convertiti nello stesso modo in cui vengono convertiti per i singoli oggetti istruzione MySQL.

Convertire oggetti di database MySQL

Per convertire gli oggetti di database MySQL, selezionare prima gli oggetti da convertire e quindi eseguire la conversione di SSMA. Per visualizzare i messaggi di output durante la conversione, scegliere Output dal menu Visualizza.

Convertire gli oggetti MySQL in SQL Server o nella sintassi SQL di Azure

  1. In Esplora metadati MySQL espandere il server MySQL, quindi espandere Database.

  2. Selezionare gli oggetti da convertire:

    • Per convertire tutti gli schemi, selezionare la casella di controllo accanto a Database.

    • Per convertire od omettere un database, selezionare o deselezionare la casella di controllo accanto al nome del database.

    • Per convertire od omettere una categoria di oggetti, espandere uno schema e quindi selezionare o deselezionare la casella di controllo accanto alla categoria.

    • Per convertire od omettere singoli oggetti, espandere la cartella delle categorie e quindi selezionare o deselezionare la casella di controllo accanto all'oggetto.

  3. Per convertire tutti gli oggetti selezionati, fare clic con il pulsante destro del mouse su Database e scegliere Converti schema.

    È anche possibile convertire singoli oggetti o categorie di oggetti facendo clic con il pulsante destro del mouse sull'oggetto o sulla relativa cartella padre e quindi scegliendo Converti schema.

Visualizzare i problemi di conversione

Alcuni oggetti MySQL potrebbero non essere convertiti. È possibile determinare i tassi di esito positivo della conversione visualizzando il report di conversione riepilogativo.

Visualizzare un report sintetico

  1. In Esplora metadati MySQL selezionare Database.

  2. Nel riquadro a destra, selezionare la scheda Report.

    Questo report mostra il report di valutazione riepilogativo per tutti gli oggetti di database che sono stati valutati o convertiti. È anche possibile visualizzare un report di riepilogo per singoli oggetti:

    • Per visualizzare il report per un singolo schema, selezionare il database in Esplora metadati MySQL.

    • Per visualizzare il report per un singolo oggetto, selezionare l'oggetto in Esplora metadati MySQL. Gli oggetti con problemi di conversione sono contrassegnati da un'icona di errore di colore rosso.

Per gli oggetti che non sono riusciti a eseguire la conversione, è possibile visualizzare la sintassi che ha generato l'errore di conversione.

Visualizzare i singoli problemi di conversione

  1. In Esplora metadati MySQL espandere Database.

  2. Espandere il database che mostra un'icona di errore di colore rosso.

  3. Nel database espandere una cartella con un'icona di errore di colore rosso.

  4. Selezionare l'oggetto con un'icona di errore di colore rosso.

  5. Nel riquadro a destra, selezionare la scheda Report.

  6. Nella parte superiore della scheda Report è presente un elenco a discesa. Se l'elenco mostra Statistiche, modificare la selezione in Origine.

    SSMA visualizza il codice sorgente e diversi pulsanti immediatamente sopra il codice.

  7. Selezionare il pulsante Avanti. Si tratta di un'icona di errore rossa con una freccia che punta a destra.

    SSMA evidenzia il primo codice sorgente problematico trovato nell'oggetto corrente.

Per ogni elemento che non è stato possibile convertire, è necessario determinare le operazioni da eseguire con l'oggetto:

  • È possibile modificare l'oggetto nel database MySQL per rimuovere o modificare il codice problematico. Per caricare il codice aggiornato in SSMA, è necessario aggiornare i metadati. Per altre informazioni, vedere Connessione a MySQL (MySQLToSQL)

  • È possibile escludere l'oggetto dalla migrazione. In Esplora metadati di SQL Server o SQL Azure e Esplora metadati MySQL deselezionare la casella di controllo accanto all'elemento prima di caricare gli oggetti in SQL Server o Azure SQL e di eseguire la migrazione dei dati da MySQL.

Vedi anche

Passaggi successivi