Köra en lagrad procedur som kastar ett fel
Du vill registrera att du har tagit emot 3 Trek Conduit+-cyklar till ett pris av $499,99.
Du tror att Trek Conduit+ inte finns i tabellen products, så du försöker lägga till den som en ny produkt med hjälp av den lagrade proceduren du skapade i föregående övning:
CREATE PROCEDURE insert_product
@product_name VARCHAR(50),
@stock INT,
@price DECIMAL
AS
BEGIN TRY
INSERT INTO products (product_name, stock, price)
VALUES (@product_name, @stock, @price);
END TRY
BEGIN CATCH
INSERT INTO errors VALUES ('Error inserting a product');
THROW;
END CATCH
Du behöver fånga upp eventuella fel som uppstår vid körningen av den lagrade proceduren och visa det ursprungliga felmeddelandet.
Hur lägger du upp skriptet?
Den här övningen är en del av kursen
Transaktioner och felhantering i SQL Server
Övningsinstruktioner
- Kör den lagrade proceduren
insert_product. - Ange lämpliga värden för procedurens parametrar.
- Omge felhanteringen med ett
CATCH-block. - Välj ut felmeddelandet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
BEGIN TRY
-- Execute the stored procedure
EXEC ___
-- Set the values for the parameters
@product_name = 'Trek Conduit+',
@stock = ___,
@price = ___;
END TRY
-- Set up the CATCH block
___ ___
-- Select the error message
SELECT ___;
___ ___