Folosirea funcțiilor de eroare într-un TRY...CATCH imbricat
Ai primit niște biciclete electrice noi în magazin, așa că trebuie să actualizezi stocul.
Vrei să înregistrezi că ai primit 2 biciclete Trek Powerfly 5 - 2018 la un preț de 3499,99 $ fiecare și 3 biciclete New Power K- 2018 la 1999,99 $ fiecare.
Încerci să inserezi produsele în baza de date, deoarece crezi că sunt modele noi. Totuși, ai uitat că primul model se află deja în stoc. Din fericire, tabela products are o constrângere care impune unicitatea numelui fiecărui produs.
Pregătești un script care gestionează eventualele erori apărute la inserare. De asemenea, vrei să salvezi erorile posibile într-o tabelă numită errors și, dacă inserarea erorii eșuează, să afișezi numărul și mesajul erorii.
Acest exercițiu face parte din cursul
Tranzacții și gestionarea erorilor în SQL Server
Instrucțiuni pentru exercițiu
- Înconjoară gestionarea erorilor cu un bloc
CATCH. - Inserează
'Error inserting a product'în tabelaerrorsși înconjoară această inserare cu un alt blocTRY. - Înconjoară gestionarea erorilor imbricate cu un alt bloc
CATCH. - Selectează linia erorii și mesajul erorii în blocul
CATCHinterior.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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;
___ ___
___ ___