FORMATMESSAGE กับสตริงข้อความ
ทุกครั้งที่ขายจักรยานในร้าน จำเป็นต้องตรวจสอบว่ามีสต็อกเพียงพอหรือไม่ เตรียมสคริปต์ไว้สำหรับตรวจสอบ และให้โยนข้อผิดพลาดหากสต็อกไม่เพียงพอ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Transactions and Error Handling in SQL Server
คำแนะนำการฝึกหัด
- กำหนดค่า
@sold_bikesให้มากกว่า@current_stock(เช่น 100) - กำหนดข้อความแสดงข้อผิดพลาดโดยใช้
FORMATMESSAGEโดยมีข้อความ 'There are not enough %s bikes. You have %d in stock.' เป็นพารามิเตอร์แรก,@product_nameเป็นพารามิเตอร์ที่สอง และ@current_stockเป็นพารามิเตอร์ที่สาม - ส่งตัวแปร
@my_messageไปยังคำสั่งTHROWแล้วคลิก รันโค้ด (ไม่ใช่ Run Solution) เพื่อดูข้อผิดพลาด - ตั้งค่า
@sold_bikesในคำสั่งDECLAREกลับเป็น 10 แล้วรันโค้ดโดยไม่มีข้อผิดพลาด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
DECLARE @product_name AS NVARCHAR(50) = 'Trek CrossRip+ - 2018';
-- Set the number of sold bikes
DECLARE @sold_bikes AS INT = ___;
DECLARE @current_stock INT;
SELECT @current_stock = stock FROM products WHERE product_name = @product_name;
DECLARE @my_message NVARCHAR(500) =
-- Customize the error message
FORMATMESSAGE(___, ___, ___);
IF (@current_stock - @sold_bikes < 0)
-- Throw the error
THROW 50000, ___, 1;