Aan de slagGa gratis aan de slag

Foutfuncties gebruiken in een geneste TRY...CATCH

Je hebt nieuwe elektrische fietsen binnengekregen in je winkel, dus je moet de voorraad bijwerken.

Je wilt registreren dat je 2 Trek Powerfly 5 - 2018-fietsen hebt ontvangen met een prijs van $3499,99 per stuk, en 3 New Power K- 2018-fietsen à $1999,99 per stuk.

Je probeert de producten in de database in te voegen omdat je denkt dat het nieuwe modellen zijn. Maar je was vergeten dat je de eerste al op voorraad hebt. Gelukkig heeft de tabel products een constraint die vereist dat elke productnaam uniek is.

Je bereidt een script voor dat mogelijke fouten bij het invoegen afvangt. Je wilt eventuele fouten ook invoegen in een tabel errors en, als er iets misgaat bij het invoegen van de fout, het foutnummer en het foutbericht tonen.

Deze oefening maakt deel uit van de cursus

Transacties en foutafhandeling in SQL Server

Cursus bekijken

Oefeninstructies

  • Omring de foutafhandeling met een CATCH-blok.
  • Voeg 'Error inserting a product' in in de tabel errors en omring deze invoegactie met een extra TRY-blok.
  • Omring de geneste foutafhandeling met nog een CATCH-blok.
  • Selecteer in het innerlijke CATCH-blok de regel van de fout en het foutbericht.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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; 
    ___ ___    
___ ___
Code bewerken en uitvoeren