สคริปต์จัดการข้อผิดพลาดแรกของคุณ
คุณพบว่าตาราง products ยังไม่มี constraint ใดที่ตรวจสอบข้อมูลในคอลัมน์ stock ซึ่งตามหลักแล้ว stock ควรมีค่ามากกว่าหรือเท่ากับ 0 เสมอ
แต่ปรากฏว่ามีข้อผิดพลาดในแถวต่อไปนี้ โดย stock มีค่าเป็น -1!
| product_id | product_name | stock | price |
|------------|--------------|-------|-------|
| 6 | Trek Neko+ | -1 | 2799 |
ต้องการเตรียมสคริปต์เพื่อเพิ่ม constraint ให้กับตาราง products โดยอนุญาตให้ stock มีค่ามากกว่าหรือเท่ากับ 0 เท่านั้น
หากเพิ่ม constraint ดังกล่าว การรันจะล้มเหลว เนื่องจากมีแถวที่มีค่า stock เป็น -1 อยู่
จะเตรียมสคริปต์นี้ได้อย่างไร?
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Transactions and Error Handling in SQL Server
คำแนะนำการฝึกหัด
- ครอบ constraint ด้วยบล็อก
TRY - เพิ่ม constraint เข้าไปในตาราง
products - ครอบข้อความแสดงข้อผิดพลาดด้วยบล็อก
CATCH
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Set up the TRY block
BEGIN ___
-- Add the constraint
ALTER TABLE ___
ADD CONSTRAINT CHK_Stock CHECK (stock >= 0);
___ ___
-- Set up the CATCH block
___ ___
SELECT 'An error occurred!';
END ___