Conversione di schemi DB2 (DB2ToSQL)

Dopo la connessione a DB2, la connessione a SQL Server e l'impostazione delle opzioni di mapping di progetti e dati, è possibile convertire oggetti di database DB2 in oggetti di database di SQL Server.

Processo di conversione

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

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 DB2 o il processo di conversione per ottenere i risultati della conversione desiderati.

Impostazione delle 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 le funzioni e le variabili globali. Per altre informazioni vedere Impostazioni progetto (Conversione) (DB2ToSQL).

Risultati della conversione

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

Oggetti DB2 Oggetti SQL Server risultanti
Tipi di dati SSMA esegue il mapping di ogni tipo, ad eccezione dei seguenti:

CLOB: alcune funzioni native per l'uso con questo tipo non sono supportate (ad esempio, CLOB_EMPTY())

BLOB: alcune funzioni native per l'uso con questo tipo non sono supportate ( ad esempio, BLOB_EMPTY())

DBLOB: alcune funzioni native per l'uso con questo tipo non sono supportate (ad esempio, DBLOB_EMPTY())
Tipi definiti dall'utente SSMA esegue il mapping dei seguenti elementi definiti dall'utente:

Tipo distinto

Testo strutturato

Tipi di dati SQL PL - Nota: il tipo di cursore debole non è supportato.
Registri speciali SSMA esegue il mapping solo dei registri indicati di seguito:

CURRENT TIMESTAMP

CURRENT DATE

CURRENT TIME

CURRENT TIMEZONE

CURRENT USER

SESSION_USER e USER

SYSTEM_USER

CURRENT CLIENT_APPLNAME

CURRENT CLIENT_WRKSTNNAME

CURRENT LOCK TIMEOUT

CURRENT SCHEMA

CURRENT SERVER

CURRENT ISOLATION

Altri registri speciali non vengono mappati alla semantica di SQL Server.
CREATE TABLE SSMA esegue il mapping di CREATE TABLE con le eccezioni seguenti:

Tabelle MDC (Multidimensional Clustering)

Tabelle cluster di intervalli (RCT)

Tabelle partizionate

Tabella scollegata

Clausola DATA CAPTURE

Opzione IMPLICITLY HIDDEN

Opzione VOLATILE
CREATE VIEW SSMA esegue il mapping di CREATE VIEW con 'WITH LOCAL CHECK OPTION' ma altre opzioni non sono mappate alla semantica di SQL Server
CREATE INDEX SSMA esegue il mapping di CREATE INDEX con le eccezioni seguenti:

Indice XML

Opzione BUSINESS_TIME WITHOUT OVERLAPS

Clausola PARTITIONED

Opzione SPECIFICATION ONLY

Opzione EXTEND USING

Opzione MINPCTUSED

Opzione PAGE SPLIT
Trigger SSMA esegue il mapping della semantica dei trigger seguenti:

Trigger AFTER / FOR EACH ROW

Trigger AFTER /FOR EACH STATEMENT

Trigger BEFORE / FOR EACH ROW e INSTEAD OF / FOR EACH ROW
Sequenze Viene eseguito il mapping.
Istruzione SELECT SSMA esegue il mapping di SELECT con le eccezioni seguenti:

Clausola Data-change-table-reference - Mappata parzialmente, ma le tabelle FINAL non sono supportate

Clausola table-reference - Mappata parzialmente, ma only-table-reference, outer-table-reference, analyze_table-expression, collection-derived-table, xmltable-expression non vengono mappati alla semantica di SQL Server

Clausola period-specification - Non mappata.

Clausola continue-handler - Non mappata.

Clausola typed-correlation - Non mappata.

Clausola concurrent-access-resolution - Non mappata.
Istruzioni VALUES Viene eseguito il mapping.
Istruzione INSERT Viene eseguito il mapping.
Istruzione UPDATE SSMA esegue il mapping di UPDATE con le eccezioni seguenti:

Clausola table-reference - Only-table-reference non è mappata alla semantica di SQL Server

Clausola Period - Non è mappata.
Istruzione MERGE SSMA esegue il mapping di MERGE con le eccezioni seguenti:

Occorrenze singole e multiple di ogni clausola : viene eseguito il mapping alla semantica di SQL Server per le occorrenze limitate di ogni clausola

Clausola SIGNAL - Non esegue il mapping alla semantica di SQL Server

Clausole UPDATE e DELETE miste - Non esegue il mapping alla semantica di SQL Server

Clausola period - non esegue il mapping alla semantica di SQL Server
Istruzione DELETE SSMA esegue il mapping di DELETE con le eccezioni seguenti:

Clausola table-reference - Only-table-reference non è mappata alla semantica di SQL Server

Clausola period - non esegue il mapping alla semantica di SQL Server
Livello di isolamento e tipo di blocco Viene eseguito il mapping.
Procedure (SQL) Viene eseguito il mapping.
Procedure (esterne) Aggiornamenti manuali richiesti.
Procedure (origine) Non eseguire il mapping alla semantica di SQL Server.
Istruzione di assegnazione Viene eseguito il mapping.
Istruzione CALL per una procedura Viene eseguito il mapping.
Istruzione CASE Viene eseguito il mapping.
Istruzione FOR Viene eseguito il mapping.
Istruzione GOTO Viene eseguito il mapping.
Istruzione IF Viene eseguito il mapping.
Istruzione ITERATE Viene eseguito il mapping.
Istruzione LEAVE Viene eseguito il mapping.
Istruzione LOOP Viene eseguito il mapping.
Istruzione REPEAT Viene eseguito il mapping.
Istruzione RESIGNAL Le condizioni non sono supportate. I messaggi possono essere facoltativi.
Istruzione RETURN Viene eseguito il mapping.
Istruzione SIGNAL Le condizioni non sono supportate. I messaggi possono essere facoltativi.
Istruzione WHILE Viene eseguito il mapping.
Istruzione GET DIAGNOSTICS SSMA esegue il mapping di GET DIAGNOSTICS con le eccezioni seguenti:

ROW_COUNT - Viene eseguito il mapping.

DB2_RETURN_STATUS - Viene eseguito il mapping.

MESSAGE_TEXT - Viene eseguito il mapping.

DB2_SQL_NESTING_LEVEL - Non esegue il mapping alla semantica di SQL Server

DB2_TOKEN_STRING - Non esegue il mapping alla semantica di SQL Server
Cursori SSMA esegue il mapping di CURSORS con le eccezioni seguenti:

Istruzione ALLOCATE CURSOR - Non esegue il mapping alla semantica di SQL Server

Istruzione ASSOCIATE LOCATORS - Non esegue il mapping alla semantica di SQL Server

Istruzione DECLARE CURSOR - La clausola Returnability non è mappata alla semantica di SQL Server

Istruzione FETCH - Mapping parziale. Sono supportate solo le variabili come destinazioni. SQLDA DESCRIPTOR non è mappato alla semantica di SQL Server
Variabili Viene eseguito il mapping.
Eccezioni, gestori e condizioni SSMA esegue il mapping della "gestione delle eccezioni" con le eccezioni seguenti:

Gestori EXIT - Viene eseguito il mapping.

Gestori UNDO - Viene eseguito il mapping.

Gestori CONTINUE - Non viene eseguito il mapping.

Condizioni - Non esegue il mapping alla semantica di SQL Server.
SQL dinamica Non viene eseguito il mapping.
Alias Viene eseguito il mapping.
Nomi alternativi Mapping parziale. L'elaborazione manuale è necessaria per l'oggetto sottostante
Sinonimi Viene eseguito il mapping.
Funzioni standard in DB2 SSMA esegue il mapping delle funzioni standard DB2 quando in SQL Server è disponibile una funzione equivalente:
Autorizzazione Non viene eseguito il mapping.
Predicati Viene eseguito il mapping.
SELECT INTO - istruzione Non viene eseguito il mapping.
Istruzioni VALUES INTO Non viene eseguito il mapping.
Controllo della transazione Non viene eseguito il mapping.

Conversione di oggetti di database DB2

Per convertire gli oggetti di database DB2, 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.

Per convertire oggetti DB2 in sintassi di SQL Server

  1. In Esplora metadati DB2 espandere il server DB2, quindi espandere Schemi.

  2. Selezionare gli oggetti da convertire:

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

    • Per convertire o omettere un database, selezionare la casella di controllo accanto al nome dello schema.

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

    • Per convertire o 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 Schemi 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.

Visualizzazione dei problemi di conversione

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

Per visualizzare un report di riepilogo

  1. In Esplora metadati DB2 selezionare Schemi.

  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 lo schema in Esplora metadati DB2.

    • Per visualizzare il report per un singolo oggetto, selezionare l'oggetto in Esplora metadati DB2. Gli oggetti con problemi di conversione hanno un'icona di errore rossa.

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

Per visualizzare singoli problemi di conversione

  1. In Esplora metadati DB2 espandere Schemi.

  2. Espandere lo schema che mostra un'icona di errore rossa.

  3. Nello schema espandere una cartella con un'icona di errore rossa.

  4. Selezionare l'oggetto con un'icona di errore rossa.

  5. Nel riquadro destro fare clic sulla 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 visualizzerà il codice sorgente e diversi pulsanti immediatamente sopra il codice.

  7. Fare clic sul pulsante Problema successivo. 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 tale oggetto:

  • È possibile modificare il codice sorgente per le procedure nella scheda SQL.

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

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

Passaggio successivo

Il passaggio successivo del processo di migrazione consiste nel caricare gli oggetti convertiti in SQL Server.

Vedi anche

Migrazione di dati DB2 a SQL Server (DB2ToSQL)