Condividi tramite


Impostazioni progetto (conversione) (Db2ToSQL)

La pagina Conversione della finestra di dialogo Impostazioni progetto contiene impostazioni che consentono di personalizzare il modo in cui SQL Server Migration Assistant (SSMA) converte la sintassi Db2 nella sintassi di SQL Server.

Il riquadro Conversione è disponibile nelle finestre di dialogo Impostazioni progetto e Impostazioni progetto predefinite.

  • Per specificare le impostazioni per tutti i progetti SSMA, nel menu Strumenti selezionare Impostazioni progetto predefinite, selezionare il tipo di progetto di migrazione per cui è necessario visualizzare o modificare le impostazioni dall'elenco a discesa Versione di destinazione della migrazione, quindi selezionare Generale nella parte inferiore del riquadro sinistro e quindi selezionare Conversione.

  • Per specificare le impostazioni per il progetto corrente, nel menu Strumenti selezionare Impostazioni progetto, quindi selezionare Generale nella parte inferiore del riquadro sinistro e quindi selezionare Conversione.

Messaggi di conversione

Generare messaggi relativi ai problemi applicati

Specifica se SSMA genera messaggi informativi durante la conversione, li visualizza nel riquadro Output e li aggiunge al codice convertito.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No

Modalità estesa: No

Altre opzioni

Eseguire la trasmissione di espressioni ROWNUM come numeri interi

Quando SSMA converte espressioni ROWNUM, converte l'espressione in una clausola TOP seguita dall'espressione. L'esempio seguente mostra ROWNUM in un'istruzione Db2 DELETE:

DELETE FROM Table1
WHERE ROWNUM < expression
    AND Field1 >= 2

L’esempio seguente mostra il Transact-SQL risultante:

DELETE TOP (expression - 1)
FROM Table1
WHERE Field1 >= 2

L'oggetto TOP richiede che l'espressione di clausole TOP restituisca un numero intero. Se l'intero è negativo, l'istruzione genera un errore.

  • Se si seleziona , SSMA esegue la trasmissione dell'espressione come numero intero.

  • Se si seleziona No, SSMA contrassegna tutte le espressioni non integer come errore nel codice convertito.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/estesa: No

Modalità ottimistica:

Mapping predefinito dello schema

Questa impostazione specifica il mapping degli schemi Db2 agli schemi di SQL Server. In questa impostazione sono disponibili due opzioni:

  1. Schema al database: in questa modalità lo schema Db2 viene mappato per impostazione predefinita allo dbo schema sch1 di SQL Server nel database sch1di SQL Server.

  2. Schema a schema: in questa modalità, lo schema Db2 viene mappato per impostazione predefinita allo sch1 schema sch1 di SQL Server nel database SQL Server predefinito fornito nella finestra di dialogo di connessione.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: schema a database

Modi di conversione dell'istruzione MERGE

  • Se si seleziona Uso dell’istruzione INSERT, UPDATE, DELETE, SSMA converte l'istruzione MERGER in istruzioni INSERT, UPDATE, DELETE.

  • Se si seleziona Uso dell'istruzione MERGE, SSMA converte l'istruzione MERGER nell'istruzione MERGER in SQL Server.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Impostazione predefinita/ottimistica/estesa: usare l'istruzione MERGE (UNIRE)

Convertire le chiamate in sottoprogrammi che usano argomenti predefiniti

Le funzioni di SQL Server non supportano l'omissione di parametri nella chiamata di funzione. Inoltre, le funzioni e le procedure di SQL Server non supportano le espressioni come valori di parametro predefiniti.

  • Se si seleziona Sì e una chiamata di funzione omette i parametri, SSMA inserisce la parola chiave predefinita nella funzione e chiama nella posizione corretta. Contrassegna quindi la chiamata con un avviso.

  • Se si seleziona No, SSMA contrassegna le chiamate di funzione come errori.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Convertire la funzione COUNT in COUNT_BIG

Se è probabile che le funzioni COUNT restituiscano valori superiori a 2,147,483,647, ovvero 231-1, è necessario convertire le funzioni in COUNT_BIG.

  • Se si seleziona , SSMA converte tutti gli usi di COUNT in COUNT_BIG.

  • Se si seleziona No, le funzioni rimangono come COUNT. SQL Server restituisce un errore se la funzione restituisce un valore maggiore di 231-1.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/estesa:

Modalità ottimistica: No

Convertire l'istruzione FORALL nell'istruzione WHILE

Definisce il modo in cui SSMA tratterà i cicli FORALL sugli elementi della raccolta PL/SQL.

  • Se si seleziona , SSMA crea un ciclo WHILE in cui gli elementi della raccolta vengono recuperati uno alla volta.

  • Se si seleziona No, SSMA genera un set di righe dalla raccolta usando il metodo nodes( ) e lo usa come singola tabella. Questa operazione è più efficiente, ma rende il codice di output meno leggibile.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No

Modalità estesa:

Convertire chiavi esterne con un'azione referenziale SET NULL nella colonna NON NULL

Db2 consente la creazione di vincoli di chiave esterna, in cui non è possibile eseguire un'azione SET NULL perché gli NUL non sono consentiti nella colonna a cui si fa riferimento. SQL Server non consente la configurazione di tale chiave esterna.

  • Se si seleziona , SSMA genera azioni referenziale come in Db2, ma è necessario apportare modifiche manuali prima di caricare il vincolo in SQL Server. Ad esempio, è possibile scegliere NO ACTION anziché SET NULL.

  • Se si seleziona No, il vincolo viene contrassegnato come errore.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: No

Convertire le chiamate di funzione in chiamate di procedura

Alcune funzioni Db2 sono definite come transazioni autonome o contengono istruzioni che non sarebbero valide in SQL Server. In questi casi, SSMA crea una procedura e una funzione che è un wrapper per la procedura. La chiamata di funzione convertita chiama la procedura di implementazione.

SSMA può convertire le chiamate alla funzione wrapper in chiamate alla procedura. Ciò dà vita a un codice più leggibile e può migliorare le prestazioni. Tuttavia, il contesto non lo consente sempre; Ad esempio, non è possibile sostituire una chiamata di funzione nell'elenco SELECT con una chiamata di procedura. SSMA offre alcune opzioni per gestire i casi più comuni:

  • Se si seleziona Sempre, SSMA tenta di convertire le chiamate di funzione wrapper in chiamate di procedura. Se il contesto corrente non consente questa conversione, viene generato un messaggio di errore. In questo modo, nel codice generato non vengono lasciate chiamate di funzione.

  • Se si seleziona Quando possibile, SSMA esegue uno spostamento alle chiamate di procedura solo se la funzione dispone di parametri di output. Quando lo spostamento non è possibile, l'attributo di output del parametro viene rimosso. In tutti gli altri casi SSMA lascia le chiamate di funzione.

  • Se si seleziona Mai, SSMA lascia tutte le chiamate di funzione come chiamate di funzione. A volte questa scelta potrebbe essere inaccettabile a causa di motivi di prestazioni.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: quando possibile

Convertire istruzioni LOCK TABLE

SSMA può convertire molte istruzioni LOCK TABLE in hint di tabella. SSMA non è in grado di convertire istruzioni LOCK TABLE che contengono clausole PARTITION, SUBPARTITION, @dblinke NOWAIT e contrassegna tali istruzioni con messaggi di errore di conversione.

  • Se si seleziona , SSMA converte le istruzioni LOCK TABLE supportate in hint di tabella.

  • Se si seleziona No, SSMA contrassegna tutte le istruzioni LOCK TABLE con messaggi di errore di conversione.

La tabella seguente illustra come SSMA converte le modalità di blocco Db2:

Modalità di blocco Db2 Hint per la tabella di SQL Server
ROW SHARE ROWLOCK, HOLDLOCK
ROW EXCLUSIVE ROWLOCK, XLOCK, HOLDLOCK
SHARE UPDATE = ROW SHARE ROWLOCK, HOLDLOCK
CONDIVIDI TABLOCK, HOLDLOCK
SHARE ROW EXCLUSIVE TABLOCK, XLOCK, HOLDLOCK
EXCLUSIVE TABLOCKX, HOLDLOCK

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Convertire istruzioni OPEN-FOR per i parametri REF CURSOR OUT

In Db2 l'istruzione OPEN-FOR può essere usata per restituire un set di risultati al parametro OUT di un subprogramma di tipo REF CURSOR. In SQL Server le stored procedure restituiscono direttamente i risultati delle istruzioni SELECT.

SSMA può convertire molte istruzioni OPEN-FOR in istruzioni SELECT.

  • Se si seleziona , SSMA converte l'istruzione OPEN-FOR in un'istruzione SELECT, che restituisce il set di risultati al client.

  • Se si seleziona No, SSMA genera un messaggio di errore nel codice convertito e nel riquadro Output.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Convertire il record come elenco di variabili separate

SSMA può convertire i record Db2 in variabili separate e in variabili XML con una struttura specifica.

  • Se si seleziona , SSMA converte il record in un elenco di variabili separate quando possibile.

  • Se si seleziona No, SSMA converte il record in variabili XML con struttura specifica.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Convertire le chiamate di funzione SUBSTR in chiamate di funzione SUBSTRING

SSMA può convertire le chiamate di funzione DB2 SUBSTR in chiamate di funzione di sottostringa di SQL Server, a seconda del numero di parametri. Se SSMA non è in grado di convertire una chiamata di funzione SUBSTR o il numero di parametri non è supportato, SSMA converte la chiamata di funzione SUBSTR in una chiamata di funzione SSMA personalizzata.

  • Se si seleziona , SSMA converte le chiamate di funzione SUBSTR che usano tre parametri nella sottostringa di SQL Server. Altre funzioni SUBSTR verranno convertite per chiamare la funzione SSMA personalizzata.

  • Se si seleziona No, SSMA converte la chiamata alla funzione SUBSTR in una chiamata di funzione SSMA personalizzata.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica:

Modalità estesa: No

Convertire sottotipi

SSMA può convertire i sottotipi PL/SQL in due modi:

  • Se si seleziona , SSMA crea un tipo definito dall'utente di SQL Server da un sottotipo e lo usa per ogni variabile di questo sottotipo.

  • Se si seleziona No, SSMA sostituisce tutte le dichiarazioni di origine del sottotipo con il tipo sottostante e converte il risultato come di consueto. In questo caso, non vengono creati tipi aggiuntivi in SQL Server

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: No

Convertire sinonimi

È possibile eseguire la migrazione dei sinonimi per gli oggetti Db2 seguenti a SQL Server:

  • Tabelle e tabelle di oggetti
  • Viste e viste di oggetti
  • Stored procedure e funzioni
  • Viste materializzate

I sinonimi per gli oggetti Db2 seguenti possono essere sostituiti da riferimenti diretti agli oggetti :

  • Sequenze
  • Pacchetti
  • Oggetti dello schema di classe Java
  • Tipi di oggetto definiti dall'utente

Non è possibile eseguire la migrazione di altri sinonimi. SSMA genera messaggi di errore per il sinonimo e tutti i riferimenti che usano il sinonimo.

  • Se si seleziona , SSMA crea sinonimi di SQL Server e riferimenti a oggetti diretti in base agli elenchi precedenti.

  • Se si seleziona No, SSMA crea riferimenti a oggetti diretti per tutti i sinonimi elencati qui.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Converti TO_CHAR(date, format)

SSMA può convertire Db2 TO_CHAR(date, format) in procedure dal database sysdb.

  • Se si seleziona Usare la funzione TO_CHAR_DATE, SSMA converte TO_CHAR(date, format) nella funzione TO_CHAR_DATE utilizzando la lingua inglese per la conversione.

  • Se si seleziona Usare la funzione TO_CHAR_DATE_LS (NLS care), SSMA converte TO_CHAR(date, format) nella funzione TO_CHAR_DATE_LS utilizzando il linguaggio di sessione per la conversione

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: uso della funzione TO_CHAR_DATE

Modalità estesa: uso della funzione TO_CHAR_DATE_LS (NLS care)

Convertire le istruzioni di elaborazione delle transazioni

SSMA può convertire le istruzioni di elaborazione delle transazioni Db2:

  • Se si seleziona , SSMA converte le istruzioni di elaborazione delle transazioni Db2 in istruzioni DI SQL Server.

  • Se si seleziona No, SSMA contrassegna le istruzioni di elaborazione delle transazioni come errori di conversione.

Nota

Db2 apre le transazioni in modo implicito. Per emulare questo comportamento in SQL Server, è necessario aggiungere manualmente istruzioni BEGIN TRANSACTION in cui si desidera avviare le transazioni. In alternativa, è possibile eseguire il comando SET IMPLICIT_TRANSACTIONS ON all'inizio della sessione. SSMA aggiunge automaticamente SET IMPLICIT_TRANSACTIONS ON durante la conversione di subroutine con transazioni autonome.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Emulare il comportamento Dei valori Null Db2 nelle clausole ORDER BY

I valori NULL vengono ordinati in modo diverso in SQL Server e Db2:

  • In SQL Server i valori NULL sono i valori più bassi in un elenco ordinato. In un elenco crescente, NULL i valori vengono visualizzati per primi.

  • In Db2 i NULL valori sono i valori più alti in un elenco ordinato. Per impostazione predefinita, i valori NULL vengono visualizzati per ultimi in un elenco di ordine crescente.

  • Db2 include clausole NULLS FIRST e NULLS LAST, che consente di modificare il modo in cui Db2 ordina I VALORI NULL.

SSMA può emulare il comportamento db2 ORDER BY controllando i NULL valori. Quindi ordina prima in base ai valori NULL nell'ordine specificato e poi in base ad altri valori.

  • Se si seleziona , SSMA converte l'istruzione Db2 in modo da emulare il comportamento db2 ORDER BY.

  • Se si seleziona No, SSMA ignora le regole Db2 e genera un messaggio di errore quando rileva le clausole NULLS FIRST e NULLS LAST.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No

Modalità estesa:

Emulare le eccezioni del conteggio delle righe in SELECT

Se un'istruzione SELECT con una clausola INTO non restituisce righe, Db2 genera un'eccezione NO_DATA_FOUND. Se l'istruzione restituisce due o più righe, viene generata l'eccezione TOO_MANY_ROWS. L'istruzione convertita in SQL Server non genera alcuna eccezione se il conteggio delle righe è diverso da uno.

  • Se si seleziona , SSMA aggiunge la chiamata alla routine sysdb db_error_exact_one_row_check dopo ogni istruzione SELECT. Questa procedura emula le eccezioni NO_DATA_FOUND e TOO_MANY_ROWS. Si tratta dell'impostazione predefinita e consente di riprodurre il comportamento db2 il più vicino possibile. È sempre consigliabile scegliere se il codice sorgente include gestori di eccezioni che elaborano tali errori. Se l'istruzione SELECT si verifica all'interno di una funzione definita dall'utente, questo modulo viene convertito in una stored procedure, perché l'esecuzione di stored procedure e la generazione di eccezioni non è compatibile con il contesto di funzione di SQL Server.

  • Se si seleziona No, non vengono generate eccezioni. Ciò può essere utile quando SSMA converte una funzione definita dall'utente e si vuole che questa \rimanga una funzione in SQL Server

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Generare un errore per DBMS_SQL.PARSE

  • Se si seleziona Errore, SSMA genera un errore nel DBMS_SQL di conversione. ANALIZZARE.

  • Se si seleziona Avviso, SSMA genera un avviso nel DBMS_SQL di conversione. ANALIZZARE.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: Errore

Generare colonne ROWID

Quando SSMA crea tabelle in SQL Server, può creare una colonna ROWID. Quando si esegue la migrazione dei dati, ogni riga ottiene un nuovo valore UNIQUEIDENTIFIER generato dalla funzione newid().

  • Se si seleziona , la colonna ROWID viene creata in tutte le tabelle e SQL Server genera GUID durante l'inserimento dei valori. Scegliere sempre Sì se si prevede di usare il tester SSMA.

  • Se si seleziona No, le colonne ROWID non vengono aggiunte alle tabelle.

  • Aggiungere la colonna ROWID per le tabelle con trigger aggiungere ROWID per le tabelle contenenti trigger (impostazione predefinita).

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: aggiungere la colonna ROWID per le tabelle con trigger

Modalità estesa:

Generare un indice univoco nella colonna ROWID

Specifica se SSMA genera o meno una colonna di indice univoca nella colonna generata da ROWID. Se l'opzione è impostata su YES, viene generato un indice univoco. Se è impostato su NO, non viene generato un indice univoco nella colonna ROWID.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Conversione dei moduli locali

Definisce il tipo di sottogramma annidato Db2 (dichiarato nella conversione autonoma di stored procedure o funzione).

  • Se si seleziona Inline, le chiamate al sottogramma annidato vengono sostituite dal relativo corpo.

  • Se si seleziona Stored procedure, un sottogramma annidato viene convertito in una stored procedure di SQL Server e le relative chiamate vengono sostituite in questa chiamata di routine.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: Inline

Usare ISNULL nella concatenazione di stringhe

Db2 e SQL Server restituiscono risultati diversi quando le concatenazioni di stringhe includono NULL valori. Db2 considera il NULL valore come un set di caratteri vuoto. SQL Server restituisce NULL.

  • Se si seleziona , SSMA sostituisce il carattere di concatenazione Db2 (||) con il carattere di concatenazione di SQL Server (+). Inoltre, SSMA controlla le espressioni su entrambi i lati del concatenamento per i valori NULL.

  • Se si seleziona No, SSMA sostituisce i caratteri di concatenamento, ma non verifica la presenza di valori NULL.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Usare ISNULL nelle chiamate di funzione REPLACE

L'istruzione ISNULL viene usata nelle chiamate di funzione REPLACE per emulare il comportamento db2. Per questa impostazione sono presenti le opzioni seguenti:

  • NO

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No

Modalità estesa:

Usare ISNULL nelle chiamate di funzione CONCAT

L'istruzione ISNULL viene usata nelle chiamate di funzione CONCAT per emulare il comportamento db2. Per questa impostazione sono presenti le opzioni seguenti:

  • NO

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica: No

Modalità estesa:

Usare la funzione di conversione nativa, quando possibile

  • Se si seleziona , SSMA converte TO_CHAR(date, format) in funzione di conversione nativa, quando possibile.

  • Se si seleziona No, SSMA converte i TO_CHAR(data, formato) in TO_CHAR_DATE o TO_CHAR_DATE_LS (definiti dalle opzioni "Converti TO_CHAR(data, formato)").

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica:

Modalità estesa: No

Usare SELECT... FOR XML durante la conversione di SELECT... IN per variabile record

Specifica se generare un set di risultati XML quando si seleziona una variabile di record.

  • Se si seleziona , l'istruzione SELECT (SELEZIONA) restituisce XML.

  • Se si seleziona No, l'istruzione SELECT (SELEZIONA) restituisce un set di risultati.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa: No

Conversione di clausole RETURNING

Convertire la clausola RETURNING nell'istruzione DELETE in OUTPUT

Db2 fornisce una clausola RETURNING come modo per ottenere immediatamente i valori eliminati. SQL Server fornisce tale funzionalità con la clausola OUTPUT.

  • Se si seleziona , SSMA converte le clausole RETURNING nelle istruzioni DELETE in clausole OUTPUT. Poiché i trigger in una tabella possono modificare i valori, il valore restituito potrebbe essere diverso in SQL Server rispetto a quello in Db2.

  • Se si seleziona No, SSMA genera un'istruzione SELECT prima delle istruzioni DELETE per recuperare i valori restituiti.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Convertire la clausola RETURNING nell'istruzione INSERT in OUTPUT

Db2 fornisce una clausola RETURNING come modo per ottenere immediatamente i valori inseriti. SQL Server fornisce tale funzionalità con la clausola OUTPUT.

  • Se si seleziona , SSMA converte una clausola RETURNING in un'istruzione INSERT in OUTPUT. Poiché i trigger in una tabella possono modificare i valori, il valore restituito potrebbe essere diverso in SQL Server rispetto a quello in Db2.

  • Se si seleziona No, SSMA emula la funzionalità Db2 inserendo e quindi selezionando i valori da una tabella di riferimento.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Convertire la clausola RETURNING nell'istruzione UPDATE in OUTPUT

Db2 fornisce una clausola RETURNING come modo per ottenere immediatamente i valori aggiornati. SQL Server fornisce tale funzionalità con la clausola OUTPUT.

  • Se si seleziona , SSMA converte le clausole RETURNING nelle istruzioni UPDATE in clausole OUTPUT. Poiché i trigger in una tabella possono modificare i valori, il valore restituito potrebbe essere diverso in SQL Server rispetto a quello in Db2.

  • Se si seleziona No, SSMA genererà istruzioni SELECT dopo le istruzioni UPDATE per recuperare i valori restituiti.

Quando si seleziona una modalità di conversione nella casella Modalità, SSMA applica l'impostazione seguente:

Modalità di impostazione predefinita/ottimistica/estesa:

Conversione sequenza

Convertire il generatore di sequenze

In Db2 è possibile usare una sequenza per generare identificatori univoci.

SSMA può convertire le sequenze in quanto segue.

  • Uso del generatore di sequenze di SQL Server.

  • Uso del generatore di sequenze di SSMA.

  • Uso dell'identità della colonna.

L'opzione predefinita quando si esegue la conversione in SQL Server consiste nell'usare il generatore di sequenze. Tuttavia, SQL Server 2012 (11.x) e SQL Server 2014 (12.x) non supportano l'acquisizione del valore della sequenza corrente ,ad esempio quello del metodo currval della sequenza Db2. Per indicazioni sulla migrazione del metodo currval della sequenza Db2, vedere il sito di blog del team di SSMA.

SSMA offre anche un'opzione per convertire la sequenza Db2 nell'emulatore di sequenza SSMA.

Infine, è inoltre possibile convertire la sequenza assegnata a una colonna nella tabella in valori identità di SQL Server. È necessario specificare il mapping tra le sequenze a una colonna Identity nella scheda Tabella Db2

Convertire trigger esterni CURRVAL

Visibile solo quando Convertire generatore di sequenza è impostato su Uso della colonna dell'identità. Poiché le sequenze Db2 sono oggetti separati dalle tabelle, molte tabelle che usano Sequenze usano un trigger per generare e inserire un nuovo valore di sequenza. SSMA imposta queste istruzioni come commenti oppure le contrassegna come errori quando i commenti sarebbero fonti di errori.

  • Se si seleziona , SSMA contrassegna tutti i riferimenti a trigger esterni nella sequenza convertita CURRVAL con un avviso.

  • Se si seleziona No, SSMA contrassegna tutti i riferimenti a trigger esterni nella sequenza convertita CURRVAL con un errore.