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

การติดตามประวัติการทำงานของ trigger

ปัจจัยสำคัญอย่างหนึ่งในการติดตาม trigger คือการมีประวัติการทำงานของ trigger ข้อมูลนี้ช่วยให้เชื่อมโยงช่วงเวลาที่ trigger ทำงานกับปัญหาต่าง ๆ ที่เกิดขึ้นในฐานข้อมูลได้

หากเวลาตรงกัน ก็มีความเป็นไปได้ว่าปัญหาเหล่านั้นเกิดจาก trigger

SQL Server ให้ข้อมูลเกี่ยวกับการทำงานของ trigger ที่ยังคงอยู่ใน memory ผ่าน view ชื่อ sys.dm_exec_trigger_stats แต่เมื่อใดก็ตามที่ trigger ถูกนำออกจาก memory ข้อมูลทั้งหมดของ trigger นั้นจะถูกลบออกจาก view ด้วย ทำให้สูญเสียประวัติการทำงานของ trigger ไป

เพื่อแก้ปัญหานี้ จึงตัดสินใจใช้ตาราง TriggerAudit เพื่อบันทึกข้อมูลเกี่ยวกับทุกครั้งที่มีการพยายามแก้ไขแถวในตาราง Orders เนื่องจากมีรายงานว่าตารางดังกล่าวมักไม่ตอบสนอง

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

การสร้างและปรับแต่ง Trigger ใน SQL Server

ดูคอร์ส

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

  • แก้ไข trigger PreventOrdersUpdate
  • กำหนดให้ trigger ทำงานเมื่อมีการอัปเดตแถวในตาราง Orders
  • เพิ่มรายละเอียดเกี่ยวกับการทำงานของ trigger ลงในตาราง TriggerAudit

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

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

-- Modify the trigger to add new functionality
___ TRIGGER PreventOrdersUpdate
ON ___
-- Prevent any row changes
INSTEAD OF ___
AS
	-- Keep history of trigger executions
	INSERT INTO ___ (TriggerName, ExecutionDate)
	SELECT 'PreventOrdersUpdate', 
           GETDATE();

	RAISERROR ('Updates on "Orders" table are not permitted.
                Place a new order to add new products.', 16, 1);
แก้ไขและรันโค้ด