DDL triggers

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

Florin Angelescu

Instructor

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

DML triggers

  • อีเวนต์ที่เชื่อมกับคำสั่ง DML INSERT, UPDATE, DELETE
  • ใช้กับ AFTER หรือ INSTEAD OF
  • ผูกกับตารางหรือ view
  • ตารางพิเศษ inserted และ deleted

DDL triggers

  • อีเวนต์ที่เชื่อมกับคำสั่ง DDL CREATE, ALTER, DROP
  • ใช้กับ AFTER เท่านั้น
  • ผูกกับฐานข้อมูลหรือเซิร์ฟเวอร์
  • ไม่มีตารางพิเศษ
การสร้างและปรับแต่ง Trigger ใน SQL Server

AFTER และ FOR

CREATE TRIGGER DatabaseChangeLog
FOR CREATE_TABLE
[...]
การสร้างและปรับแต่ง Trigger ใน SQL Server

AFTER และ FOR

CREATE TRIGGER TrackDatabaseTables
FOR CREATE_TABLE
[...]

AFTER = FOR

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

ข้อกำหนดเบื้องต้นของ DDL trigger

  • อ็อบเจกต์เป้าหมาย (เซิร์ฟเวอร์หรือฐานข้อมูล)
  • คำอธิบาย trigger
  • อีเวนต์ที่ทำให้ trigger ทำงาน (DDL)
  • ชื่อ trigger
  • DATABASE
  • ตารางบันทึกการเปลี่ยนแปลง definition
  • CREATE_TABLE,ALTER_TABLE,DROP_TABLE
  • TrackTableChanges
การสร้างและปรับแต่ง Trigger ใน SQL Server

การกำหนด DDL trigger

CREATE TRIGGER TrackTableChanges

ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS INSERT INTO TablesChangeLog (EventData, ChangedBy) VALUES (EVENTDATA(), USER);
การสร้างและปรับแต่ง Trigger ใน SQL Server

การป้องกันอีเวนต์ที่ทำให้ DML triggers ทำงาน

CREATE TRIGGER PreventTableDeletion
ON DATABASE
FOR DROP_TABLE

AS RAISERROR ('You are not allowed to remove tables from this database.', 16, 1); ROLLBACK;
การสร้างและปรับแต่ง Trigger ใน SQL Server

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

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

Preparing Video For Download...