การเชื่อมต่อข้อความ
ให้เตรียม script สำหรับดึงข้อมูลทั้งหมดของสมาชิกจากตาราง staff โดยใช้ first_name ที่กำหนดให้
หาก SELECT statement ไม่พบสมาชิกใด ให้โยนข้อผิดพลาดด้วยคำสั่ง THROW พร้อมแจ้งว่าไม่มีพนักงานที่มีชื่อดังกล่าว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Transactions and Error Handling in SQL Server
คำแนะนำการฝึกหัด
- กำหนดค่าให้
@my_messageเป็นการเชื่อมต่อของ 'There is no staff member with ' กับค่าของ@first_nameและ ' as the first name.' - ใช้
THROWโดยระบุ 50000 เป็นหมายเลขข้อผิดพลาด,@my_messageเป็น parameter ของข้อความ และ 1 เป็น state - แทนที่ชื่อ 'Pedro' ใน
DECLAREstatement ที่ต้นโค้ดด้วยชื่อที่ไม่มีอยู่จริง (เช่น 'David') แล้วคลิก รันโค้ด (ไม่ใช่ Run Solution) จะเห็นข้อผิดพลาดปรากฏขึ้น - เปลี่ยนชื่อกลับเป็น 'Pedro' แล้วรันโค้ดอีกครั้งโดยไม่มีข้อผิดพลาด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
DECLARE @first_name NVARCHAR(20) = 'Pedro';
-- Concat the message
DECLARE @my_message NVARCHAR(500) =
___('There is no staff member with ', ___, ' as the first name.');
IF NOT EXISTS (SELECT * FROM staff WHERE first_name = @first_name)
-- Throw the error
___ ___, ___, ___;