เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเรียกใช้ stored procedure ที่ throw ข้อผิดพลาด

สมมติว่าต้องการบันทึกการรับจักรยาน Trek Conduit+ จำนวน 3 คัน ราคาคันละ $499.99 เนื่องจากคิดว่า Trek Conduit+ ยังไม่มีในตาราง products จึงพยายามเพิ่มเป็นสินค้าใหม่ โดยใช้ stored procedure ที่สร้างไว้ในแบบฝึกหัดก่อนหน้า:

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

ต้องดักจับข้อผิดพลาดที่อาจเกิดขึ้นระหว่างการเรียกใช้ stored procedure พร้อมแสดงข้อความผิดพลาดต้นฉบับ

จะเขียนสคริปต์อย่างไร?

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Transactions and Error Handling in SQL Server

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เรียกใช้ stored procedure ชื่อ insert_product
  • กำหนดค่าที่เหมาะสมให้กับพารามิเตอร์ของ stored procedure
  • ครอบส่วนจัดการข้อผิดพลาดด้วยบล็อก CATCH
  • Select ข้อความผิดพลาด

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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 ___;
___ ___
แก้ไขและรันโค้ด