Le fait que le code applicatif génère des valeurs clé pour des colonnes comme ID employé présente un avantage : l'application peut facilement se servir de la valeur générée pour l'afficher ou l'inclure dans un e-mail souhaitant la bienvenue à un nouvel employé. Par exemple, l'application pourrait émettre une opération
Trouver votre identité
FETCH contre la
ligne juste insérée et extraire la valeur
d’identité manuellement. Mais c’est
une solution complexe et lente à exécuter.
La fonction SQL IDENTITY_
VAL_LOCAL constitue une meilleure
réponse.
Cette fonction renvoie la valeur la
plus récemment attribuée pour une colonne d’identité dans un job ou une
connexion de base de données. Si vous
utilisez des threads dans un job ou une
connexion, la fonction renvoie toujours
la dernière valeur insérée dans
une colonne d’identité par n’importe
quel thread, pas simplement le thread
invoquant la fonction IDENTITY_VAL_
LOCAL. La valeur d’identité renvoyée
par cette fonction peut être soit une
valeur générée par DB2 UDB, soit une
valeur spécifiée par l’utilisateur (INSERT
avec OVERRIDING SYSTEM VALUE,
par exemple). Voici un exemple
d’utilisation de l’instruction VALUES
pour extraire la valeur d’identité la plus
récemment attribuée dans une variable
hôte locale :
VALUES IDENTITY_VAL_LOCAL() INTO:hostvar
Si une tentative d’instruction SQL
INSERT se termine mal, la fonction
IDENTITY_VAL_LOCAL renverra des
résultats imprévisibles. Si aucune instruction
SQL INSERT n’a été exécutée
dans un job ou une connexion, la fonction
IDENTITY_VAL_LOCAL renverra
une valeur nulle.
La fonction IDENTITY_VAL_LOCAL
n’est pas affectée par les instructions
UPDATE, COMMIT ou ROLLBACK, pas
plus qu’elle n’est affectée par un INSERT
dans une table sans colonnes
d’identité.
La figure 2 montre une suite d’instructions
qui démontre comment la valeur
de fonction IDENTITY_VAL_LOCAL
est affectée et pas affectée par des
instructions SQL.
Si l’on utilise des triggers (déclencheurs)
pour un traitement de gestion,
on peut trouver la valeur d’identité générée
dans le trigger en accédant à une
variable de transition de trigger SQL ou
au buffer de triggers externe. On peut
utiliser la fonction IDENTITY_VAL_LOCAL
à l’intérieur d’un trigger, mais il
faut consulter DB2 UDB SQL
Reference avant de coder cette logique.
La fonction IDENTITY_VAL_LOCAL
renverra toujours null si elle est invoquée
dans un trigger Insert Before
ou la condition trigger (c’est-à -dire la clause WHEN) d’un trigger Before
Insert. Si la fonction est invoquée par
un trigger Insert After, elle renverra
aussi null à moins que la logique du
trigger After n’inclue une instruction
INSERT qui a déjà été exécutée.
Si la fonction IDENTITY_VAL_LOCAL
est invoquée après une instruction
INSERT qui a provoqué l’exécution
de triggers, le résultat est la valeur
attribuée réellement à la colonne
d’identité (c’est-à -dire, la valeur qui serait
renvoyée sur une instruction SELECT
suivante). Cette valeur n’est pas
forcément celle qui est fournie dans
l’instruction INSERT ou une valeur générée
par le responsable de la base de
données. La valeur attribuée pour une
colonne d’identité pourrait être une
valeur qui été modifiée par un trigger Before. Les triggers SQL Before peuvent
modifier des données pour n’importe
quelle colonne avec une instruction
SET et les triggers externes
accomplissent cette modification de
données en modifiant le buffer de triggers.
Les interfaces non-SQL ne disposent
d’aucune fonction pour extraire la
valeur la plus récemment attribuée. Par
conséquent, des applications utilisant
des interfaces non-SQL doivent lire le
dernier enregistrement inséré pour accéder
à la valeur d’identité générée.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Les 6 étapes vers un diagnostic réussi
- Afficher les icônes cachées dans la barre de notification
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Cyberattaques assistées par IA : Pourquoi le modèle Mythos d’Anthropic représente une menace sérieuse pour la cybersécurité
- Avec les Smart Data, les entreprises mènent la danse de l’observabilité moderne
- Les dirigeants européens redéfinissent la C-suite à l’ère de l’IA
- Analyse Patch Tuesday Mai 2026
Articles les + lus
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
À la une de la chaîne Tech
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
