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

การซ้อนโครงสร้าง TRY...CATCH

ต้องการลงทะเบียนผู้ซื้อรายใหม่ในตาราง buyers ผู้ซื้อรายนี้ชื่อ Peter Thomson อีเมลคือ [email protected] และหมายเลขโทรศัพท์คือ 555000100

ในฐานข้อมูลยังมีตารางชื่อ errors ซึ่งใช้สำหรับบันทึกข้อผิดพลาดแต่ละรายการ

ให้เตรียมสคริปต์ที่ตรวจจับข้อผิดพลาดที่อาจเกิดขึ้นในการแทรกข้อมูลของบุคคลนี้ และบันทึกข้อผิดพลาดเหล่านั้นลงในตาราง errors ด้วย

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

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

Transactions and Error Handling in SQL Server

ดูคอร์ส

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

  • ครอบคำสั่ง INSERT INTO buyers ด้วยบล็อก TRY
  • ครอบส่วนจัดการข้อผิดพลาดด้วยบล็อก CATCH
  • ครอบคำสั่ง INSERT INTO errors ด้วยบล็อก TRY อีกชั้นหนึ่ง
  • ครอบส่วนจัดการข้อผิดพลาดที่ซ้อนอยู่ด้วยบล็อก CATCH อีกชั้นหนึ่ง

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

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

-- Set up the first TRY block
___ ___
	INSERT INTO buyers (first_name, last_name, email, phone)
		VALUES ('Peter', 'Thompson', '[email protected]', '555000100');
___ ___
-- Set up the first CATCH block
___ ___
	SELECT 'An error occurred inserting the buyer! You are in the first CATCH block';
    -- Set up the nested TRY block
    ___ ___
    	INSERT INTO errors 
        	VALUES ('Error inserting a buyer');
        SELECT 'Error inserted correctly!';
	___ ___
    -- Set up the nested CATCH block
    ___ ___
    	SELECT 'An error occurred inserting the error! You are in the nested CATCH block';
    ___ ___ 
___ ___
แก้ไขและรันโค้ด