CommencerCommencer gratuitement

Utiliser des fonctions d’erreur dans un TRY...CATCH imbriqué

Vous avez reçu de nouveaux vélos électriques pour votre magasin, vous devez donc mettre à jour le stock.

Vous souhaitez enregistrer la réception de 2 vélos Trek Powerfly 5 - 2018 au prix de 3 499,99 $ chacun, et de 3 vélos New Power K- 2018 à 1 999,99 $ chacun.

Vous essayez d’insérer les produits dans la base, car vous pensez qu’il s’agit de nouveaux modèles. Cependant, vous avez oublié que le premier est déjà en stock. Heureusement, la table products impose une contrainte exigeant l’unicité du nom de chaque produit.

Vous préparez un script qui gère les erreurs possibles lors des insertions. Vous voulez aussi enregistrer les erreurs éventuelles dans une table appelée errors et, si l’insertion de l’erreur échoue, afficher le numéro et le message de l’erreur.

Cet exercice fait partie du cours

Transactions et gestion des erreurs dans SQL Server

Afficher le cours

Instructions

  • Encadrez la gestion d’erreur avec un bloc CATCH.
  • Insérez 'Error inserting a product' dans la table errors et encadrez cette insertion avec un autre bloc TRY.
  • Encadrez la gestion d’erreur imbriquée avec un autre bloc CATCH.
  • Dans le bloc CATCH interne, sélectionnez la ligne de l’erreur et le message d’erreur.

Exercice interactif pratique

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

BEGIN TRY
    INSERT INTO products (product_name, stock, price) 
    VALUES	('Trek Powerfly 5 - 2018', 2, 3499.99),   		
    		('New Power K- 2018', 3, 1999.99)		
END TRY
-- Set up the outer CATCH block
___ ___
	SELECT 'An error occurred inserting the product!';
    -- Set up the inner TRY block
    ___ ___
    	-- Insert the error
    	INSERT INTO ___ 
        	VALUES ('Error inserting a product');
    ___ ___    
    -- Set up the inner CATCH block
    ___ ___
    	-- Show number and message error
    	SELECT 
        	___ AS line,	   
			___ AS message; 
    ___ ___    
___ ___
Modifier et exécuter le code