CommencerCommencer gratuitement

Vérifier @@TRANCOUNT dans une construction TRY...CATCH

Le titulaire du compte 10 a gagné une loterie et recevra 200 \(. Vous préparez un script simple pour ajouter ces 200 \) au current_balance du compte 10. Vous pensez avoir tout bien écrit, mais vous préférez vérifier votre code.

En réalité, vous avez fait une erreur bête en ajoutant l’argent : SET current_balance = 'current_balance' + 200. Vous avez écrit 'current_balance' comme une chaîne, ce qui génère une erreur.

Le script que vous créez doit effectuer un rollback de toute modification en cas d’erreur, après avoir vérifié s’il existe une transaction ouverte. Si tout se passe bien, la transaction doit être validée (commit), là encore après avoir vérifié s’il existe une transaction ouverte.

Cet exercice fait partie du cours

Transactions et gestion des erreurs dans SQL Server

Afficher le cours

Instructions

  • Démarrez la transaction.
  • Corrigez l’erreur dans l’opération.
  • Dans le bloc TRY, vérifiez s’il y a une transaction et validez-la (commit).
  • Dans le bloc CATCH, vérifiez s’il y a une transaction et annulez-la (rollback).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

BEGIN TRY
	-- Begin the transaction
	___ ___;
    	-- Correct the mistake
		UPDATE accounts SET current_balance = 'current_balance' + 200
			WHERE account_id = 10;
    	-- Check if there is a transaction
		IF ___ > 0     
    		-- Commit the transaction
			___ ___;
     
	SELECT * FROM accounts
    	WHERE account_id = 10;      
END TRY
BEGIN CATCH  
    SELECT 'Rolling back the transaction'; 
    -- Check if there is a transaction
    IF ___ > 0   	
    	-- Rollback the transaction
        ___ ___;
END CATCH
Modifier et exécuter le code