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
Övningsinstruktioner
- Omge felhanteringen med ett
CATCH-block. - Infoga
'Error inserting a product'i tabellenerrorsoch omge den insättningen med ett nyttTRY-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;
___ ___
___ ___