IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Racchiudi la gestione degli errori in un blocco CATCH.
  • Inserisci 'Error inserting a product' nella tabella errors e racchiudi questo inserimento in un altro blocco TRY.
  • Racchiudi la gestione degli errori annidata in un altro blocco CATCH.
  • Seleziona la riga dell'errore e il messaggio di errore nel blocco CATCH interno.

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; 
    ___ ___    
___ ___
Modifica ed esegui il codice