Dans un environnement de contrôle de commitment, on fait suivre les instructions de mise à jour individuelles ou les groupes d’instructions de mise à jour par une instruction Commit ou Rollback. Comme DB2 retire automatiquement les mises à jour partiellement effectuées quand votre job se termine, vous devez indiquer explicitement
Les instructions SQL Commit et Rollback
quand toutes les mises à jour associées sont prêtes à être « committed » (c’està- dire rendues permanentes). Dans l’exemple précédent, l’instruction Commit suivrait immédiatement l’instruction Update, comme dans la séquence suivante :
Update Customer Set Discount = Discount + 0.001 Where Discount Is Not Null Commit
Si l’instruction Update s’exécute bien, dès que l’instruction Commit se termine, les changements apportés à la table Customer sont permanents. En substance, DB2 ajoute au journal une entrée disant que les mises à jour des lignes dont les images avant étaient précédemment sauvegardées, ont maintenant été terminées et « committed ».
On l’a vu, vous pouvez utiliser le contrôle de commitment pour grouper plusieurs instructions de mise à jour dans une seule transaction (aussi appelée une unité logique de travail). Tous les changements de base de données pour des instructions Update, Insert et Delete dans une transaction peuvent être désormais garantis pour une exécution en mode « tout ou rien » : c’est-à-dire que les changements se feront tous, ou pas du tout. Revenons à notre transaction de banque classique. Avec le contrôle de commitment, la séquence d’instructions de base (en ignorant le traitement des erreurs) serait :
Update Saving Set Balance = Balance – 100.00 Where AccID = 123987
Update Checking Set Balance = Balance + 100.00 Where AccID = 12387
Commit
Si vous décidez d’écarter les mises à jour qui n’ont pas encore été « committed », vous pouvez exécuter une instruction Rollback qui, en SQL, est tout simplement
Rollback
Si vous le souhaitez, vous pouvez ajouter le mot-clé Hold à Commit ou Rollback, comme dans l’exemple suivant :
Commit Hold
Avec Hold, toutes les instructions SQL préparées sont gardées (sans Hold, elles disparaissent quand on exécute une instruction Commit ou Rollback). De plus, le mot-clé Hold évite de libérer des verrous de table. Vous pouvez aussi ajouter le mot-clé Hold pour éviter de fermer des curseurs SQL imbriqués. Mais, le plus souvent, il existe une meilleure solution pour garder les curseurs ouverts : coder l’option With Hold sur l’instruction Declare Cursor elle-même.
À noter qu’il n’existe pas d’instruction SQL « begin transaction ». En effet, DB2 commence toujours une transaction de manière implicite – soit quand vous démarrez un environnement de contrôle de commitment, soit quand vous terminez la transaction précédente par une instruction Commit ou Rollback.
Lorsque des instructions Commit et Rollback sont imbriquées dans des programmes SQL, les points principaux à considérer sont les suivants : où placer ces instructions dans la logique du programme et quel est l’impact d’un commit ou rollback sur les autres ressources, telles que des curseurs ouverts. On l’a vu, vous devez vous efforcer de coder Commit et Rollback au(x) point(s) de l’application où vous avez terminé (avec ou sans succès) toutes les instructions SQL impliquées dans une transaction.
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
Les plus consultés sur iTPro.fr
- La connectivité, nouvelle colonne vertébrale de l’expérience en magasin
- Assises de la Sécurité 2026 : osons remettre l’humain au centre et reprendre les commandes
- Réforme de la facturation électronique 2026 : de la contrainte réglementaire à un véritable enjeu différenciant
- IA : la sécurité se prépare aux accès agentiques
Articles les + lus
Continuer avec Exchange Server : quelles conséquences ?
Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
Sécurité : une approche dans la durée avant tout
À la une de la chaîne Tech
- Continuer avec Exchange Server : quelles conséquences ?
- Raccourcis Réseau et Navigateur : le kit de Diagnostic des Professionnels IT
- Raccourcis PowerShell et Windows Terminal pour les Professionnels IT
- Commandes Windows 11 : le Guide des Outils accessibles avec Win + R
- Sécurité : une approche dans la durée avant tout
