Impostazioni progetto (conversione) (DB2ToSQL)

La pagina Conversione della finestra di dialogo Impostazioni progetto contiene impostazioni che consentono di personalizzare la modalità di conversione della sintassi di 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, scegliere Impostazioni progetto predefinite dal menu Strumenti, selezionare il tipo di progetto di migrazione per cui è necessario visualizzare o modificare le impostazioni dall'elenco a discesa Versione destinazione migrazione, quindi fare clic su Generale nella parte inferiore del riquadro a sinistra, e infine su Conversione.

  • Per specificare le impostazioni per il progetto corrente, scegliere Impostazioni progetto dal menu Strumenti, fare clic su Generale nella parte inferiore del riquadro a sinistra, quindi su 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

Opzioni varie

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 genererà un errore.

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

  • Se si seleziona No, SSMA contrassegnerà tutte le espressioni non in numeri interi 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 dello schema predefinito

Questa impostazione specifica il modo in cui gli schemi DB2 vengono mappati in quelli di SQL Server. In questa impostazione sono disponibili due opzioni:

  1. Schema al database: in questa modalità lo schema DB2 'sch1' verrà mappato per impostazione predefinita allo schema di SQL Server 'dbo' nel database di SQL Server 'sch1'.

  2. Schema a schema: in questa modalità lo schema DB2 'sch1' verrà mappato per impostazione predefinita allo schema di SQL Server 'sch1' 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.

Avviso

Questa opzione di impostazione del progetto è disponibile solo in SQL Server 2008, SQL Server 2012, SQL Server 2014.

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 e una chiamata di funzione omette i parametri, SSMA inserirà la parola chiave predefinita nella funzione ed effettuerà la chiamata nella posizione corretta. Contrassegnerà quindi la chiamata con un avviso.

  • Se si seleziona No, SSMA contrassegnerà 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 convertirà tutti gli usi di COUNT in COUNT_BIG.

  • Se si seleziona No, le funzioni rimarranno come COUNT. SQL Server restituirà 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 di creare vincoli di chiave esterna, in cui non è possibile eseguire un'azione SET NULL perché non sono consentiti valori NULL nella colonna a cui si fa riferimento. SQL Server non consente tale configurazione di chiave esterna.

  • Se si seleziona , SSMA genererà azioni referenziale come in DB2, ma sarà 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 verrà 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 lascerà tutte le chiamate di funzione come chiamate di funzione. A volte questa scelta può essere inaccettabile per 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 può convertire istruzioni LOCK TABLE che contengono clausole PARTITION, SUBPARTITION, @dblinke NOWAIT e contrassegnerà tali istruzioni con messaggi di errore di conversione.

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

  • Se si seleziona No, SSMA contrassegnerà 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 della 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 sottoprogramma 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 genererà 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 substring 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 convertirà la chiamata di funzione SUBSTR in una chiamata di funzione SSMA personalizzata.

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

  • Se si seleziona No, SSMA convertirà 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 creerà un tipo definito dall'utente (UDT) di SQL Server da un sottotipo e lo userà per ogni variabile di questo sottotipo.

  • Se si seleziona No, SSMA sostituirà tutte le dichiarazioni di origine del sottotipo con il tipo sottostante e convertirà 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 genererà messaggi di errore per il sinonimo e per tutti i riferimenti che usano il sinonimo.

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

  • Se si seleziona No, SSMA creerà 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 TO_CHAR(date, format) di DB2 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 di DB2:

  • Se si seleziona , SSMA converte le istruzioni di elaborazione delle transazioni di 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 di 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, i valori NULL verranno visualizzati per primi.

  • In DB2 i valori NULL sono i valori più alti in un elenco ordinato. Per impostazione predefinita, i valori NULL vengono visualizzati per ultimo in un elenco crescente.

  • DB2 include clausole NULLS FIRST e NULLS LAST, che consente di modificare il modo in cui DB2 ordina valori NULL.

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

  • Se si seleziona , SSMA convertirà l'istruzione DB2 in modo da emulare il comportamento ORDER BY di DB2.

  • Se si seleziona No, SSMA ignorerà le regole DB2 e genererà 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. Si noti che se l'istruzione SELECT si verifica all'interno di una funzione definita dall'utente, questo modulo verrà 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 verranno 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.PARSE di conversione.

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

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 se si prevede di usare il tester SSMA.

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

  • Aggiungi colonna ROWID per le tabelle con trigger aggiunge ROWID per le tabelle contenenti trigger.

Avviso

L'impostazione predefinita nel caso di SQL Server 2005, SQL Server 2008 e SQL Server 2012 e 2014 è Aggiungi colonna ROWID per le tabelle con trigger.

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 "SÌ", viene generato un indice univoco, mentre se è impostata su "NO" l'indice univoco non viene generato 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 sottoprogramma annidato DB2 (dichiarato nella conversione autonoma di stored procedure o funzione).

  • Se si seleziona Inline, le chiamate al sottoprogramma annidato verranno sostituite dal relativo corpo.

  • Se si seleziona Stored procedure, il sottoprogramma annidato verrà convertito in una stored procedure di SQL Server e le relative chiamate verranno sostituite in questa chiamata di procedura.

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 valori NULL. DB2 considera il valore NULL 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 (+). SSMA controlla anche le espressioni su entrambi i lati della concatenazione per i valori NULL.

  • Se si seleziona No, SSMA sostituisce i caratteri di concatenazione, 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 TO_CHAR(date, format) in TO_CHAR_DATE o TO_CHAR_DATE_LS (è definito dalle opzioni "Converti TO_CHAR(date, format)").

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 restituisce XML.

  • Se si seleziona No, l'istruzione SELECT 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 della clausola 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 convertirà 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 genererà 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 convertirà 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 convertirà 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 sequenza

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

SSMA può convertire le sequenze nel modo seguente.

  • Uso del generatore di sequenze di SQL Server (questa opzione è disponibile solo quando si esegue la conversione in SQL Server 2012 e SQL Server 2014).

  • Uso del generatore di sequenze di SSMA.

  • Uso dell'identità della colonna.

L'opzione predefinita quando si esegue la conversione in SQL Server 2012 o SQL Server 2014 consiste nell'usare il generatore di sequenze di SQL Server. Tuttavia, SQL Server 2012 e SQL Server 2014 non supporta l'acquisizione del valore di sequenza corrente, ad esempio quello del metodo currval di sequenza DB2. Per indicazioni sulla migrazione del metodo currval di 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. Questa è l'opzione predefinita quando si esegue la conversione in SQL Server prima del 2012

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 per una colonna identity nella scheda Tabella di 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 contrassegnerà tutti i riferimenti a trigger esterni nella sequenza convertita CURRVAL con un avviso.

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

Vedi anche

Guida di riferimento all'interfaccia utente (DB2ToSQL)