Kom igångKom igång gratis

Använda felfunktioner i en nästlad TRY...CATCH

Du har fått in nya elcyklar i butiken och behöver uppdatera lagret.

Du vill registrera att du tagit emot 2 Trek Powerfly 5 - 2018 till ett pris av 3 499,99 dollar styck, och 3 New Power K- 2018 till 1 999,99 dollar styck.

Du försöker lägga in produkterna i databasen eftersom du tror att de är nya modeller. Du glömde dock att du redan har den första modellen i lager. Som tur är har tabellen products en begränsning som kräver att varje produktnamn är unikt.

Du förbereder ett skript som hanterar eventuella fel vid insättningarna. Du vill också lagra eventuella fel i en tabell kallad errors, och om något går fel när felet ska infogas, visa felnumret och felmeddelandet.

Den här övningen är en del av kursen

Transaktioner och felhantering i SQL Server

Visa kurs

Övningsinstruktioner

  • Omge felhanteringen med ett CATCH-block.
  • Infoga 'Error inserting a product' i tabellen errors och omge den insättningen med ett nytt TRY-block.
  • Omge den nästlade felhanteringen med ytterligare ett CATCH-block.
  • Välj felraden och felmeddelandet i det inre CATCH-blocket.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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; 
    ___ ___    
___ ___
Redigera och kör kod