Partager via


Paramètres du projet (conversion) (Db2ToSQL)

La page Conversion de la boîte de dialogue Paramètres du projet contient des paramètres qui personnalisent la façon dont Assistant Migration SQL Server (SSMA) convertit la syntaxe Db2 en syntaxe SQL Server.

Le volet Conversion est disponible dans les boîtes de dialogue Paramètres du projet et Paramètres du projet par défaut :

  • Pour spécifier les paramètres de tous les projets SSMA, dans le menu Outils, sélectionnez Paramètres de projet par défaut, sélectionnez le type de projet de migration pour lequel les paramètres doivent être affichés ou modifiés dans la liste déroulante Version cible de migration, puis sélectionnez Général en bas du volet gauche, puis sélectionnez Conversion.

  • Pour spécifier les paramètres du projet actuel, dans le menu Outils , sélectionnez Paramètres du projet, puis Sélectionnez Général en bas du volet gauche, puis sélectionnez Conversion.

Messages de conversion

Générer des messages sur les problèmes appliqués

Spécifie si SSMA génère des messages d’information pendant la conversion, les affiche dans le volet Sortie et les ajoute au code converti.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non

Mode plein : Non

Options diverses

Cast d’expressions ROWNUM en tant qu’entiers

Lorsque SSMA convertit des expressions ROWNUM, elle convertit l’expression en clause TOP, suivie de l’expression. L’exemple suivant montre ROWNUM dans une instruction DB2 DELETE :

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

L’exemple suivant montre le transact-SQL résultant :

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

L’expression TOP nécessite que l’expression des clauses TOP soit évaluée à un entier. Si l’entier est négatif, l’instruction génère une erreur.

  • Si vous sélectionnez Oui, SSMA convertit l’expression en tant qu’entier.

  • Si vous sélectionnez Non, SSMA marque toutes les expressions non entières comme une erreur dans le code converti.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/plein : Non

Mode optimiste : Oui

Mappage de schéma par défaut

Ce paramètre spécifie comment les schémas Db2 sont mappés aux schémas SQL Server. Deux options sont disponibles dans ce paramètre :

  1. Schéma à base de données : dans ce mode, le schéma sch1 Db2 est mappé par défaut au dbo schéma SQL Server dans la base de données sch1SQL Server.

  2. Schéma à schéma : dans ce mode, le schéma sch1 Db2 est mappé par défaut au sch1 schéma SQL Server dans la base de données SQL Server par défaut fournie dans la boîte de dialogue de connexion.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : schéma à base de données

Méthodes de conversion de l’instruction MERGE

  • Si vous sélectionnez Using INSERT, UPDATE, DELETE, instruction, SSMA convertit l’instruction MERGE en instructions INSERT, UPDATE, DELETE.

  • Si vous sélectionnez Utilisation de l’instruction MERGE, SSMA convertit l’instruction MERGE en instruction MERGE dans SQL Server.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/complet : utilisation de l’instruction MERGE

Convertir des appels en sous-programmes qui utilisent des arguments par défaut

Les fonctions SQL Server ne prennent pas en charge l’omission des paramètres dans l’appel de fonction. En outre, les fonctions et procédures SQL Server ne prennent pas en charge les expressions comme valeurs de paramètre par défaut.

  • Si vous sélectionnez Oui et qu’un appel de fonction omet les paramètres, SSMA insère le mot clé par défaut dans la fonction et appelle à la position correcte. Ensuite, il marque l’appel avec un avertissement.

  • Si vous sélectionnez Non, SSMA marque les appels de fonction comme des erreurs.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Convertir la fonction COUNT en COUNT_BIG

Si vos fonctions COUNT sont susceptibles de retourner des valeurs supérieures à 2 147 483 647, soit 231 à 1, vous devez convertir les fonctions en COUNT_BIG.

  • Si vous sélectionnez Oui, SSMA convertit toutes les utilisations de COUNT en COUNT_BIG.

  • Si vous sélectionnez Non, les fonctions restent en tant que COUNT. SQL Server retourne une erreur si la fonction retourne une valeur supérieure à 231-1.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/plein : Oui

Mode optimiste : Non

Convertir l’instruction FORALL en instruction WHILE

Définit la façon dont SSMA traite les boucles FORALL sur les éléments de collection PL/SQL.

  • Si vous sélectionnez Oui, SSMA crée une boucle WHILE où les éléments de collection sont récupérés un par un.

  • Si vous sélectionnez Non, SSMA génère un ensemble de lignes à partir de la collection à l’aide de la méthode node( ) et l’utilise en tant que table unique. Cela est plus efficace, mais rend le code de sortie moins lisible.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non

Mode plein : Oui

Convertir des clés étrangères avec l’action référentielle SET NULL sur la colonne qui n’est PAS NULL

Db2 permet de créer des contraintes de clé étrangère, où une action SET NULL n’a pas pu être effectuée, car les valeurs NULL ne sont pas autorisées dans la colonne référencée. SQL Server n’autorise pas cette configuration de clé étrangère.

  • Si vous sélectionnez Oui, SSMA génère des actions référentielles comme dans Db2, mais vous devez apporter des modifications manuelles avant de charger la contrainte sur SQL Server. Par exemple, vous pouvez choisir AUCUNE ACTION au lieu de SET NULL.

  • Si vous sélectionnez Non, la contrainte est marquée comme une erreur.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Non

Convertir des appels de fonction en appels de procédure

Certaines fonctions Db2 sont définies comme des transactions autonomes ou contiennent des instructions qui ne seraient pas valides dans SQL Server. Dans ces cas, SSMA crée une procédure et une fonction qui est un wrapper pour la procédure. La fonction convertie appelle la procédure d’implémentation.

SSMA peut convertir des appels vers la fonction wrapper en appels à la procédure. Cela crée du code plus lisible et peut améliorer les performances. Toutefois, le contexte ne l’autorise pas toujours ; Par exemple, vous ne pouvez pas remplacer un appel de fonction dans la liste SELECT par un appel de procédure. SSMA propose quelques options pour couvrir les cas courants :

  • Si vous sélectionnez Always, SSMA tente de convertir des appels de fonction wrapper en appels de procédure. Si le contexte actuel n’autorise pas cette conversion, un message d’erreur est généré. Ainsi, aucun appel de fonction n’est laissé dans le code généré.

  • Si vous sélectionnez Si possible, SSMA effectue un déplacement vers les appels de procédure uniquement si la fonction a des paramètres de sortie. Lorsque le déplacement n’est pas possible, l’attribut de sortie du paramètre est supprimé. Dans tous les autres cas, SSMA quitte les appels de fonction.

  • Si vous sélectionnez Never, SSMA laisse tous les appels de fonction en tant qu’appels de fonction. Parfois, ce choix peut être inacceptable en raison de raisons de performances.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : si possible

Convertir des instructions LOCK TABLE

SSMA peut convertir de nombreuses instructions LOCK TABLE en indicateurs de table. SSMA ne peut pas convertir d’instructions LOCK TABLE qui contiennent des clauses PARTITION, SUBPARTITION @dblinket NOWAIT, et marque ces instructions avec des messages d’erreur de conversion.

  • Si vous sélectionnez Oui, SSMA convertit les instructions LOCK TABLE prises en charge en indicateurs de table.

  • Si vous sélectionnez Non, SSMA marque toutes les instructions LOCK TABLE avec des messages d’erreur de conversion.

Le tableau suivant montre comment SSMA convertit les modes de verrouillage Db2 :

Mode de verrouillage Db2 Indicateur de table SQL Server
ROW SHARE ROWLOCK, HOLDLOCK
ROW EXCLUSIVE ROWLOCK, XLOCK, HOLDLOCK
SHARE UPDATE = ROW SHARE ROWLOCK, HOLDLOCK
PARTAGER TABLOCK, HOLDLOCK
SHARE ROW EXCLUSIVE TABLOCK, XLOCK, HOLDLOCK
EXCLUSIVE TABLOCKX, HOLDLOCK

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Convertir des instructions OPEN-FOR pour les paramètres REF CURSOR OUT

Dans Db2, l’instruction OPEN-FOR peut être utilisée pour renvoyer un jeu de résultats au paramètre OUT d’un sous-programme de type REF CURSOR. Dans SQL Server, les procédures stockées retournent directement les résultats des instructions SELECT.

SSMA peut convertir de nombreuses instructions OPEN-FOR en instructions SELECT.

  • Si vous sélectionnez Oui, SSMA convertit l’instruction OPEN-FOR en instruction SELECT, qui retourne le jeu de résultats au client.

  • Si vous sélectionnez Non, SSMA génère un message d’erreur dans le code converti et dans le volet Sortie.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Convertir l’enregistrement en tant que liste de variables distinctes

SSMA peut convertir des enregistrements Db2 en variables distinctes et en variables XML avec une structure spécifique.

  • Si vous sélectionnez Oui, SSMA convertit l’enregistrement en une liste de variables distinctes lorsque cela est possible.

  • Si vous sélectionnez Non, SSMA convertit l’enregistrement en variables XML avec une structure spécifique.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Convertir des appels de fonction SUBSTR en appels de fonction SUBSTRING

SSMA peut convertir des appels de fonction DB2 SUBSTR en appels de fonction de sous-chaîne SQL Server, en fonction du nombre de paramètres. Si SSMA ne peut pas convertir un appel de fonction SUBSTR ou si le nombre de paramètres n’est pas pris en charge, SSMA convertit l’appel de fonction SUBSTR en appel de fonction SSMA personnalisé.

  • Si vous sélectionnez Oui, SSMA convertit les appels de fonction SUBSTR qui utilisent trois paramètres en sous-chaîne SQL Server. D’autres fonctions SUBSTR sont converties pour appeler la fonction SSMA personnalisée.

  • Si vous sélectionnez Non, SSMA convertit l’appel de fonction SUBSTR en un appel de fonction SSMA personnalisé.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Oui

Mode plein : Non

Convertir des sous-types

SSMA peut convertir des sous-types PL/SQL de deux façons :

  • Si vous sélectionnez Oui, SSMA crée un type SQL Server défini par l’utilisateur à partir d’un sous-type et l’utilise pour chaque variable de ce sous-type.

  • Si vous sélectionnez Non, SSMA remplace toutes les déclarations sources du sous-type par le type sous-jacent et convertit le résultat comme d’habitude. Dans ce cas, aucun type supplémentaire n’est créé dans SQL Server

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Non

Convertir des synonymes

Les synonymes des objets Db2 suivants peuvent être migrés vers SQL Server :

  • Tables et tables d’objets
  • Vues et vues d’objets
  • Procédures stockées et fonctions
  • Vues matérialisées

Les synonymes des objets Db2 suivants peuvent être remplacés par des références directes aux objets :

  • Séquences
  • .
  • Objets de schéma de classe Java
  • Types d'objets définis par l'utilisateur

Les autres synonymes ne peuvent pas être migrés. SSMA génère des messages d’erreur pour le synonyme et toutes les références qui utilisent le synonyme.

  • Si vous sélectionnez Oui, SSMA crée des synonymes SQL Server et des références d’objet directes en fonction des listes précédentes.

  • Si vous sélectionnez Non, SSMA crée des références d’objet directes pour tous les synonymes répertoriés ici.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Convertir TO_CHAR(date, format)

SSMA peut convertir db2 TO_CHAR(date, format) en procédures de la base de données sysdb.

  • Si vous sélectionnez Utiliser TO_CHAR_DATE fonction, SSMA convertit la TO_CHAR(date, format) en fonction TO_CHAR_DATE à l’aide de la langue anglaise pour la conversion.

  • Si vous sélectionnez Using TO_CHAR_DATE_LS function (NLS care), SSMA convertit le TO_CHAR(date, format) en fonction TO_CHAR_DATE_LS à l’aide du langage de session pour la conversion

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : utilisation de la fonction TO_CHAR_DATE

Mode complet : utilisation de la fonction TO_CHAR_DATE_LS (soins NLS)

Convertir des instructions de traitement des transactions

SSMA peut convertir des instructions de traitement des transactions Db2 :

  • Si vous sélectionnez Oui, SSMA convertit les instructions de traitement des transactions Db2 en instructions SQL Server.

  • Si vous sélectionnez Non, SSMA marque les instructions de traitement des transactions comme des erreurs de conversion.

Remarque

Db2 ouvre implicitement les transactions. Pour émuler ce comportement sur SQL Server, vous devez ajouter manuellement des instructions BEGIN TRANSACTION où vous souhaitez que vos transactions démarrent. Vous pouvez également exécuter la commande SET IMPLICIT_TRANSACTIONS ON au début de votre session. SSMA ajoute SET IMPLICIT_TRANSACTIONS ON automatiquement lors de la conversion de sous-routines avec des transactions autonomes.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Émuler le comportement Db2 null dans les clauses ORDER BY

Les valeurs NULL sont classées différemment dans SQL Server et Db2 :

  • Dans SQL Server, NULL les valeurs sont les valeurs les plus basses d’une liste ordonnée. Dans une liste croissant, NULL les valeurs s’affichent en premier.

  • Dans Db2, NULL les valeurs sont les valeurs les plus élevées d’une liste ordonnée. Par défaut, NULL les valeurs apparaissent en dernier dans une liste d’ordre croissant.

  • Db2 a des clauses NULLS FIRST et NULLS LAST, ce qui vous permet de modifier la façon dont Db2 commande les VALEURS NULL.

SSMA peut émuler le comportement DB2 ORDER BY en vérifiant les NULL valeurs. Il passe ensuite les commandes par NULL valeurs dans l’ordre spécifié, puis commande par d’autres valeurs.

  • Si vous sélectionnez Oui, SSMA convertit l’instruction Db2 d’une manière qui émule le comportement DB2 ORDER BY.

  • Si vous sélectionnez Non, SSMA ignore les règles Db2 et génère un message d’erreur lorsqu’il rencontre les clauses NULLS FIRST et NULLS LAST.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non

Mode plein : Oui

Émuler les exceptions de nombre de lignes dans SELECT

Si une instruction SELECT avec une clause INTO ne retourne aucune ligne, Db2 déclenche une exception NO_DATA_FOUND. Si l’instruction retourne deux lignes ou plus, l’exception TOO_MANY_ROWS est levée. L’instruction convertie dans SQL Server ne génère aucune exception si le nombre de lignes est différent d’un.

  • Si vous sélectionnez Oui, SSMA ajoute l’appel à la procédure sysdb db_error_exact_one_row_check après chaque instruction SELECT. Cette procédure émule les exceptions NO_DATA_FOUND et TOO_MANY_ROWS. Il s’agit de la valeur par défaut et permet de reproduire le comportement db2 le plus proche possible. Vous devez toujours choisir Oui si le code source possède des gestionnaires d’exceptions qui traitent ces erreurs. Si l’instruction SELECT se produit à l’intérieur d’une fonction définie par l’utilisateur, ce module est converti en procédure stockée, car l’exécution de procédures stockées et le déclenchement d’exceptions n’est pas compatible avec le contexte de fonction SQL Server.

  • Si vous sélectionnez Non, aucune exception n’est générée. Cela peut être utile lorsque SSMA convertit une fonction définie par l’utilisateur et que vous souhaitez qu’elle reste une fonction dans SQL Server

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Générer une erreur pour DBMS_SQL. ANALYSER

  • Si vous sélectionnez Erreur, SSMA génère une erreur lors de la conversion DBMS_SQL. ANALYSER.

  • Si vous sélectionnez Avertissement, SSMA génère un avertissement lors de la conversion DBMS_SQL. ANALYSER.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : erreur

Générer une colonne ROWID

Lorsque SSMA crée des tables dans SQL Server, il peut créer une colonne ROWID. Lorsque les données sont migrées, chaque ligne obtient une nouvelle valeur UNIQUEIDENTIFIER générée par la fonction newid().

  • Si vous sélectionnez Oui, la colonne ROWID est créée sur toutes les tables et SQL Server génère des GUID lorsque vous insérez des valeurs. Choisissez Toujours Oui si vous envisagez d’utiliser le testeur SSMA.

  • Si vous sélectionnez Non, les colonnes ROWID ne sont pas ajoutées aux tables.

  • Ajoutez la colonne ROWID pour les tables avec des déclencheurs ajouter ROWID pour les tables contenant des déclencheurs (par défaut).

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Ajouter une colonne ROWID pour les tables avec des déclencheurs

Mode plein : Oui

Générer un index unique sur la colonne ROWID

Spécifie si SSMA génère une colonne d’index unique sur la colonne générée ROWID ou non. Si l’option est définie YESsur , un index unique est généré. S’il est défini NOsur , un index unique n’est pas généré sur la colonne ROWID.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Conversion des modules locaux

Définit le type de sous-programme imbriqué Db2 (déclaré dans une procédure stockée ou une fonction autonome).

  • Si vous sélectionnez Inline, les appels de sous-programme imbriqués sont remplacés par son corps.

  • Si vous sélectionnez Procédures stockées, un sous-programme imbriqué est converti en procédure stockée SQL Server et ses appels sont remplacés sur cet appel de procédure.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : inline

Utiliser ISNULL dans la concaténation de chaînes

Db2 et SQL Server retournent des résultats différents lorsque les concaténations de chaîne incluent NULL des valeurs. Db2 traite la NULL valeur comme un jeu de caractères vide. SQL Server retourne NULL.

  • Si vous sélectionnez Oui, SSMA remplace le caractère de concaténation Db2 (||) par le caractère de concaténation SQL Server (+). SSMA vérifie également les expressions des deux côtés de la concaténation pour les NULL valeurs.

  • Si vous sélectionnez Non, SSMA remplace les caractères de concaténation, mais ne vérifie pas les NULL valeurs.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Utiliser ISNULL dans les appels de fonction REPLACE

L’instruction ISNULL est utilisée dans les appels de fonction REPLACE pour émuler le comportement Db2. Les options suivantes sont présentes pour ce paramètre :

  • OUI
  • NON

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non

Mode plein : Oui

Utiliser ISNULL dans les appels de fonction CONCAT

L’instruction ISNULL est utilisée dans les appels de fonction CONCAT pour émuler le comportement Db2. Les options suivantes sont présentes pour ce paramètre :

  • OUI
  • NON

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non

Mode plein : Oui

Utiliser la fonction convert native lorsque cela est possible

  • Si vous sélectionnez Oui, SSMA convertit le TO_CHAR(date, format) en fonction de conversion native si possible.

  • Si vous sélectionnez Non, SSMA convertit le TO_CHAR(date, format) en TO_CHAR_DATE ou TO_CHAR_DATE_LS (défini par les options « Convertir TO_CHAR(date, format) ».

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Oui

Mode plein : Non

Utiliser SELECT... FOR XML lors de la conversion de SELECT... INTO pour la variable d’enregistrement

Spécifie s’il faut générer un jeu de résultats XML lorsque vous sélectionnez une variable d’enregistrement.

  • Si vous sélectionnez Oui, l’instruction SELECT retourne du code XML.

  • Si vous sélectionnez Non, l’instruction SELECT retourne un jeu de résultats.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Non

Conversion de clause RETURNING

Convertir la clause RETURN dans l’instruction DELETE en OUTPUT

Db2 fournit une clause RETURNING comme moyen d’obtenir immédiatement des valeurs supprimées. SQL Server fournit cette fonctionnalité avec la clause OUTPUT.

  • Si vous sélectionnez Oui, SSMA convertit les clauses RETURNING dans les instructions DELETE en clauses OUTPUT. Étant donné que les déclencheurs d’une table peuvent modifier des valeurs, la valeur retournée peut être différente dans SQL Server que dans Db2.

  • Si vous sélectionnez Non, SSMA génère une instruction SELECT avant que les instructions DELETE récupèrent les valeurs retournées.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Convertir la clause RETURN dans l’instruction INSERT en OUTPUT

Db2 fournit une clause RETURNING comme moyen d’obtenir immédiatement des valeurs insérées. SQL Server fournit cette fonctionnalité avec la clause OUTPUT.

  • Si vous sélectionnez Oui, SSMA convertit une clause RETURN dans une instruction INSERT en OUTPUT. Étant donné que les déclencheurs d’une table peuvent modifier des valeurs, la valeur retournée peut être différente dans SQL Server que dans Db2.

  • Si vous sélectionnez Non, SSMA émule la fonctionnalité Db2 en insérant, puis en sélectionnant des valeurs dans une table de référence.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Convertir la clause RETURN dans l’instruction UPDATE en OUTPUT

Db2 fournit une clause RETURNING comme moyen d’obtenir immédiatement des valeurs mises à jour. SQL Server fournit cette fonctionnalité avec la clause OUTPUT.

  • Si vous sélectionnez Oui, SSMA convertit les clauses RETURNING dans les instructions UPDATE en clauses OUTPUT. Étant donné que les déclencheurs d’une table peuvent modifier des valeurs, la valeur retournée peut être différente dans SQL Server que dans Db2.

  • Si vous sélectionnez Non, SSMA génère des instructions SELECT après les instructions UPDATE pour récupérer les valeurs retournées.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Conversion de séquence

Convertir le générateur de séquences

Dans Db2, vous pouvez utiliser une séquence pour générer des identificateurs uniques.

SSMA peut convertir des séquences en éléments suivants.

  • Utilisation du générateur de séquence SQL Server.

  • Utilisation du générateur de séquenceS SSMA.

  • Utilisation de l’identité de colonne.

L’option par défaut lors de la conversion en SQL Server consiste à utiliser le générateur de séquences. Toutefois, SQL Server 2012 (11.x) et SQL Server 2014 (12.x) ne prennent pas en charge l’obtention de la valeur de séquence actuelle (par exemple, celle de la méthode currval de séquence Db2). Reportez-vous au site de blog de l’équipe SSMA pour obtenir des conseils sur la migration de la méthode de currval de séquence Db2.

SSMA fournit également une option pour convertir la séquence Db2 en émulateur de séquence SSMA.

Enfin, vous pouvez également convertir une séquence affectée à une colonne de la table en valeurs d’identité SQL Server. Vous devez spécifier le mappage entre les séquences à une colonne d’identité sous l’onglet Table Db2

Convertir curRV en dehors des déclencheurs

Visible uniquement lorsque le générateur de séquences de conversion est défini sur l’identité de colonne. Étant donné que db2 Sequences sont des objets distincts des tables, de nombreuses tables qui utilisent Sequences utilisent un déclencheur pour générer et insérer une nouvelle valeur de séquence. SSMA commente ces instructions ou les marque comme des erreurs lorsque le commentaire génère des erreurs.

  • Si vous sélectionnez Oui, SSMA marque toutes les références aux déclencheurs extérieurs sur la séquence convertie CURRVAL avec un avertissement.

  • Si vous sélectionnez Non, SSMA marque toutes les références à des déclencheurs extérieurs sur la séquence convertie CURRVAL avec une erreur.