

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Conversione da SQL Server a MySQL
<a name="CHAP_Source.SQLServer.ToMySQL"></a>

Per emulare le funzioni del database di Microsoft SQL Server nel codice MySQL convertito, usa il pacchetto di estensione da SQL Server a MySQL. AWS SCT Per ulteriori informazioni sui pacchetti di estensione, consulta [Utilizzo dei pacchetti di estensione con AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Privilegi per MySQL come database di destinazione](#CHAP_Source.SQLServer.ToMySQL.ConfigureTarget)
+ [Impostazioni di conversione da SQL Server a MySQL](#CHAP_Source.SQLServer.ToMySQL.ConversionSettings)
+ [Considerazioni sulla migrazione](#CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations)

## Privilegi per MySQL come database di destinazione
<a name="CHAP_Source.SQLServer.ToMySQL.ConfigureTarget"></a>

I privilegi richiesti per MySQL come destinazione sono i seguenti:
+ CREA SU\$1 . \$1
+ PIÙ TARDI \$1 . \$1
+ SCENDI SU \$1 . \$1
+ INDICE SU\$1 . \$1
+ RIFERIMENTI SU\$1 . \$1
+ SELECT ON \$1.\$1
+ CREA UNA VISTA SU\$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ GRILLETTO SU \$1 . \$1
+ CREA ROUTINE SU\$1 . \$1
+ MODIFICA LA ROUTINE SU \$1 . \$1
+ ESEGUI SU\$1 . \$1
+ INSERISCI, AGGIORNA SU AWS\$1SQLSERVER \$1EXT. \$1
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\$1SQLSERVER \$1EXT\$1DATA. \$1
+ CREA TABELLE TEMPORANEE SU AWS\$1SQLSERVER \$1EXT\$1DATA. \$1

È possibile utilizzare il seguente esempio di codice per creare un utente del database e assegnare i privilegi.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_SQLSERVER_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
```

Nell'esempio precedente, sostituiscilo *user\$1name* con il nome del tuo utente. Quindi, *your\$1password* sostituiscilo con una password sicura.

Se utilizzi un database MySQL versione 5.7 o precedente come destinazione, esegui il comando seguente. Per i database MySQL versione 8.0 e successive, questo comando è obsoleto.

```
GRANT SELECT ON mysql.proc TO 'user_name';
```

Per utilizzare Amazon RDS per MySQL o Aurora MySQL come destinazione, imposta il parametro `lower_case_table_names` su `1`. Questo valore indica che il server MySQL gestisce gli identificatori di nomi di oggetti come tabelle, indici, trigger e database senza distinzione tra maiuscole e minuscole. Se hai attivato la registrazione binaria nell'istanza di destinazione, imposta il parametro `log_bin_trust_function_creators` su `1`. In questo caso, non è necessario utilizzare le caratteristiche `DETERMINISTIC`, `READS SQL DATA` o `NO SQL` per creare funzioni archiviate. Per configurare questi parametri, crea un nuovo gruppo di parametri di database o modifica un gruppo di parametri di database esistente.

## Impostazioni di conversione da SQL Server a MySQL
<a name="CHAP_Source.SQLServer.ToMySQL.ConversionSettings"></a>

**Per modificare le impostazioni di conversione da SQL Server a MySQL, scegli Impostazioni, AWS SCT quindi **scegli** Impostazioni di conversione.** Dall'elenco superiore, scegli **SQL Server**, quindi scegli **SQL Server — MySQL**. AWS SCT visualizza tutte le impostazioni disponibili per la conversione da SQL Server a MySQL.

Le impostazioni AWS SCT di conversione da SQL Server a MySQL includono le seguenti opzioni:
+ Per limitare il numero di commenti con azioni nel codice convertito.

  Per **Aggiungi commenti nel codice convertito per le azioni di gravità selezionata o superiore**, scegli la gravità delle azioni. AWS SCT aggiunge commenti nel codice convertito per le azioni con la gravità selezionata o superiore.

  Ad esempio, per ridurre al minimo il numero di commenti nel codice convertito, scegli **Solo errori**. Per includere commenti per tutti gli elementi d'azione nel codice convertito, scegli **Tutti i messaggi**.
+ Per consentire al database SQL Server di origine di archiviare l'output di `EXEC` in una tabella. AWS SCT crea tabelle temporanee e una procedura aggiuntiva per emulare questa funzionalità. Per utilizzare questa emulazione, seleziona **Crea routine aggiuntive per la gestione** di set di dati aperti.

## Considerazioni sulla migrazione
<a name="CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations"></a>

Considerate questi aspetti durante la migrazione di uno schema di SQL Server su MySQL:
+ MySQL non supporta l'istruzione. `MERGE` Tuttavia, AWS SCT può emulare l'`MERGE`istruzione durante la conversione utilizzando la `INSERT ON DUPLICATE KEY` clausola e le istruzioni. `UPDATE FROM and DELETE FROM`

  Per un corretto utilizzo dell'emulazione`INSERT ON DUPLICATE KEY`, assicurati che esista un vincolo univoco o una chiave primaria sul database MySQL di destinazione.
+ È possibile utilizzare un'`GOTO`istruzione e un'etichetta per modificare l'ordine in cui vengono eseguite le istruzioni. Tutte le istruzioni Transact-SQL che seguono un'`GOTO`istruzione vengono ignorate e l'elaborazione continua dall'etichetta. È possibile utilizzare `GOTO` istruzioni ed etichette ovunque all'interno di una procedura, di un batch o di un blocco di istruzioni. È inoltre possibile annidare `GOTO` le istruzioni.

  MySQL non utilizza istruzioni. `GOTO` Quando AWS SCT converte il codice che contiene un'`GOTO`istruzione, converte l'istruzione in modo che utilizzi un'istruzione or. `BEGIN…END` `LOOP…END LOOP` È possibile trovare esempi di come AWS SCT converte `GOTO` le istruzioni nella tabella seguente.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.ToMySQL.html)
+ MySQL non supporta funzioni con valori di tabella a più istruzioni. AWS SCT simula funzioni con valori di tabella durante una conversione creando tabelle temporanee e riscrivendo le istruzioni per utilizzare queste tabelle temporanee.