Les transactions SQL

BEGIN TRANSACTION

Dans les systèmes de gestion de base de données (SGBD) qui supportent les transactions, BEGIN TRANSACTION marque le début d'une transaction, qui est une séquence d'opérations de base de données traitées comme une unité unique. Une transaction assure que toutes les opérations à l'intérieur de celle-ci sont soit toutes exécutées (commit), soit toutes annulées (rollback). Cela garantit l'intégrité des données et aide à gérer les erreurs qui pourraient survenir pendant le processus d'exécution.

Les propriétés fondamentales d'une transaction sont souvent résumées par l'acronyme ACID :

Exemple d'Utilisation de BEGIN TRANSACTION

Imaginons que vous gérez une base de données pour une banque et que vous devez transférer de l'argent d'un compte à un autre.

Ce processus implique deux étapes : débiter un compte et créditer un autre.
Ces deux opérations doivent être exécutées ensemble ; si l'une échoue, l'autre doit également être annulée pour maintenir l'intégrité des données.


BEGIN TRANSACTION;

-- Débiter le compte de l'expéditeur
UPDATE Comptes
SET solde = solde - 100
WHERE numero_compte = '123456';

-- Créditer le compte du destinataire
UPDATE Comptes
SET solde = solde + 100
WHERE numero_compte = '654321';

-- Valider la transaction
COMMIT;

Dans cet exemple :

BEGIN TRANSACTION commence la transaction. Les deux UPDATE sont les opérations qui modifient les soldes des comptes. COMMIT termine la transaction et applique les modifications. Si quelque chose se passe mal entre BEGIN TRANSACTION et COMMIT, vous pouvez utiliser ROLLBACK pour annuler toutes les opérations effectuées dans la transaction.

Points Importants