Kom igångKom igång gratis

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

Visa kurs

Ö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 ___;
___ ___
Redigera och kör kod