AFTER triggers (DML)

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

Florin Angelescu

Instructor

นิยามและคุณสมบัติ

  • ดำเนินการชุดคำสั่งเมื่อถูกเรียกใช้
  • ดำเนินการหลังจาก DML event เสร็จสิ้นแล้วเท่านั้น
  • ใช้กับคำสั่ง INSERT, UPDATE, และ DELETE สำหรับตารางหรือ view
การสร้างและปรับแต่ง Trigger ใน SQL Server

เงื่อนไขเบื้องต้นของ AFTER trigger

  • ต้องมีตารางหรือ view สำหรับคำสั่ง DML
  • trigger จะผูกกับตารางเดียวกัน

ข้อมูลจากตาราง Products ที่ใช้ในตัวอย่างนี้:

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      |
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
การสร้างและปรับแต่ง Trigger ใน SQL Server

เงื่อนไขเบื้องต้นของ AFTER trigger

  • ตารางเป้าหมาย
  • คำอธิบาย trigger
  • event ที่เรียกใช้ trigger (DML)
  • ชื่อ trigger
  • Products
  • บันทึกข้อมูลสินค้าที่ถูกลบไว้ในตารางประวัติ
  • DELETE
  • TrackRetiredProducts
การสร้างและปรับแต่ง Trigger ใน SQL Server

สรุปเงื่อนไขเบื้องต้นของ AFTER trigger

เมื่อแถวถูกลบออกจากตาราง Products...

บันทึกข้อมูลที่จำเป็นจากแถวเหล่านั้นไปยังตาราง RetiredProducts

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      | X
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
| Product | Measure | RemovalDate |
|---------|---------|-------------|
| Apricot | kg      | 19.04.2019  |
การสร้างและปรับแต่ง Trigger ใน SQL Server

การกำหนด AFTER trigger

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
การสร้างและปรับแต่ง Trigger ใน SQL Server

ตาราง "inserted" และ "deleted"

  • ตารางพิเศษที่ใช้โดย DML triggers
  • สร้างขึ้นอัตโนมัติโดย SQL Server
การสร้างและปรับแต่ง Trigger ใน SQL Server

ตาราง "inserted" และ "deleted"

  • ตารางพิเศษที่ใช้โดย DML triggers
  • สร้างขึ้นอัตโนมัติโดย SQL Server
Special table INSERT UPDATE DELETE
inserted แถวใหม่ แถวใหม่ N/A
deleted N/A แถวที่อัปเดต แถวที่ถูกลบ
การสร้างและปรับแต่ง Trigger ใน SQL Server

AFTER trigger ฉบับสมบูรณ์

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
การสร้างและปรับแต่ง Trigger ใน SQL Server

มาฝึกกันเถอะ!

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

Preparing Video For Download...