Conversione di database MySQL (MySQLToSQL)
Dopo la connessione a MySQL, connettersi a SQL Server o Azure SQL e impostare le opzioni di mapping di progetti e dati, è possibile convertire oggetti di database MySQL in oggetti di SQL Server o database SQL di Azure usando SQL Server Migration Assistant (SSMA) per MySQL.
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 altre informazioni vedere Impostazioni progetto (Conversione).
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 il mapping di my database SQL s agli schemi di SQL Server 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 BEGIN ... Blocco END. - In una conversione multistatement:BEGIN ... Conversione del blocco END, l'istruzione SQL può contenere anche un'istruzione BEGIN ... Blocco 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
In Esplora metadati MySQL espandere il server MySQL, quindi espandere Database.
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.
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
In Esplora metadati MySQL selezionare Database.
Nel riquadro a destra, selezionare la scheda Report.
Questo report mostra il report di valutazione di riepilogo per tutti gli oggetti di database valutati o convertiti. È inoltre possibile visualizzare un report sintetico 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
In Esplora metadati MySQL espandere Database.
Espandere il database che mostra un'icona di errore di colore rosso.
Nel database espandere una cartella con un'icona di errore di colore rosso.
Selezionare l'oggetto con un'icona di errore di colore rosso.
Nel riquadro a destra, selezionare la scheda Report.
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.
Selezionare il pulsante Avanti. Si tratta di un'icona di errore rossa con una freccia rivolta 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
È 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.