Uso delle funzioni di errore in un TRY...CATCH annidato
Hai ricevuto alcune nuove e-bike nel tuo negozio, quindi devi aggiornare lo stock.
Vuoi registrare di aver ricevuto 2 biciclette Trek Powerfly 5 - 2018 al prezzo di $3499.99 ciascuna e 3 New Power K- 2018 a $1999.99 ciascuna.
Provi a inserire i prodotti nel database perché pensi che siano modelli nuovi. Tuttavia, hai dimenticato che il primo è già a stock. Per fortuna, la tabella products ha un vincolo che richiede che ogni nome di prodotto sia univoco.
Prepari uno script che gestisce i possibili errori negli inserimenti. Vuoi anche inserire i possibili errori in una tabella chiamata errors e, se qualcosa fallisce durante l'inserimento dell'errore, mostrare il numero e il messaggio di errore.
Questo esercizio fa parte del corso
Transazioni e gestione degli errori in SQL Server
Istruzioni dell'esercizio
- Racchiudi la gestione degli errori in un blocco
CATCH. - Inserisci
'Error inserting a product'nella tabellaerrorse racchiudi questo inserimento in un altro bloccoTRY. - Racchiudi la gestione degli errori annidata in un altro blocco
CATCH. - Seleziona la riga dell'errore e il messaggio di errore nel blocco
CATCHinterno.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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;
___ ___
___ ___