Créer une transaction avec SQL Server
Besoin de réaliser des opérations atomiques sur SQL Server ? Voici un article qui vous explique pas à pas la création d'une transaction, avec un exemple de test.
Article publié le 18/06/2024, dernière mise à jour le 18/06/2024
Si vous avez cliqué sur cet article, normalement vous savez déjà ce qu’est une transaction en base de données, et leur utilité.
Dans le cas où vous voudriez vous rafraichir la mémoire, vous pouvez lire notre article dédié : https://code-garage.fr/blog/quest-ce-qu-une-transaction-en-base-de-donnees
Créer une transaction
À l’intérieur d’une transaction toutes les opérations sont effectuées les unes à la suite des autres, elle ne peuvent pas être divisées.
On parle d’opérations “atomiques”
Pour démarrer une transaction sur SQL Server, il suffit de faire :
BEGIN TRANSACTION;
Mais il faut garder en tête qu’une transaction ne peut se terminer que dans deux états bien distincts :
- Toutes les opérations ont été appliquées à la base
- Aucune opération n’a été appliquée
Il n’y a pas d’entre-deux, c’est tout ou rien !
Valider une transaction
En SQL, lorsque l’on valide (et applique) une transaction, on parle de commit
. La commande pour valider notre transaction est donc logiquement :
COMMIT TRANSACTION;
Annuler une transaction
Et à l’inverse, lorsque l’on veut retrouver l’état d’origine de sa base de données, on va faire un rollback
, comme ceci ;
ROLLBACK TRANSACTION;
Exemple d’une transaction
Voici un exemple d’une transaction de démonstration, avec laquelle vous pouvez tester le commit
ou le rollback
en fonction de la valeur de la variable @Test
:
-- Commencer une nouvelle transaction
BEGIN TRANSACTION;
DECLARE @Test BIT = 1; -- valeur à modifier
-- [...] <- Insérez votre code SQL
-- INSERT INTO <table> (<column1>, <column2>)
-- VALUES (<value1>, <value2>)
IF @Test = 1
BEGIN
-- Valider la transaction
COMMIT TRANSACTION;
END
ELSE
BEGIN
-- Annuler la transaction
ROLLBACK TRANSACTION;
END
Aucun commentaire pour l'instant