

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\* . \*
+ PIÙ TARDI \* . \*
+ SCENDI SU \* . \*
+ INDICE SU\* . \*
+ RIFERIMENTI SU\* . \*
+ SELECT ON \*.\*
+ CREA UNA VISTA SU\* . \*
+ SHOW VIEW ON \*.\*
+ GRILLETTO SU \* . \*
+ CREA ROUTINE SU\* . \*
+ MODIFICA LA ROUTINE SU \* . \*
+ ESEGUI SU\* . \*
+ INSERISCI, AGGIORNA SU AWS\_SQLSERVER \_EXT. \*
+ INSERISCI, AGGIORNA, ELIMINA SU AWS\_SQLSERVER \_EXT\_DATA. \*
+ CREA TABELLE TEMPORANEE SU AWS\_SQLSERVER \_EXT\_DATA. \*

È 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\_name}} con il nome del tuo utente. Quindi, {{your\_password}} 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.