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

การตรวจสอบตารางโดยใช้ trigger

บริษัทต้องการติดตามการเปลี่ยนแปลงที่เกิดขึ้นกับตารางสำคัญทั้งหมด โดยหนึ่งในนั้นคือตาราง Orders

การแก้ไขใด ๆ ที่เกิดขึ้นกับข้อมูลในตาราง Orders ควรถูกบันทึกลงใน TablesAudit

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

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

ดูคอร์ส

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

  • สร้าง trigger แบบ AFTER ใหม่บนตาราง Orders
  • กำหนดให้ trigger ทำงานสำหรับคำสั่ง INSERT, UPDATE และ DELETE

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

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

-- Add a trigger that tracks table changes
___ ___ OrdersAudit
ON Orders
___ INSERT, ___, ___
AS
	DECLARE @Insert BIT = 0;
	DECLARE @Delete BIT = 0;
	IF EXISTS (SELECT * FROM inserted) SET @Insert = 1;
	IF EXISTS (SELECT * FROM deleted) SET @Delete = 1;
	INSERT INTO ___ (TableName, EventType, UserAccount, EventDate)
	SELECT 'Orders' AS TableName
	       ,CASE WHEN @Insert = 1 AND @Delete = 0 THEN 'INSERT'
				 WHEN @Insert = 1 AND @Delete = 1 THEN 'UPDATE'
				 WHEN @Insert = 0 AND @Delete = 1 THEN 'DELETE'
				 END AS Event
		   ,ORIGINAL_LOGIN() AS UserAccount
		   ,GETDATE() AS EventDate;
แก้ไขและรันโค้ด