Trigger DDL

Xây dựng và Tối ưu hóa Trigger trong SQL Server

Florin Angelescu

Instructor

Định nghĩa và thuộc tính

Trigger DML

  • các sự kiện gắn với câu lệnh DML INSERT, UPDATE, DELETE
  • dùng với AFTER hoặc INSTEAD OF
  • gắn vào bảng hoặc view
  • có bảng đặc biệt inserteddeleted

Trigger DDL

  • các sự kiện gắn với câu lệnh DDL CREATE, ALTER, DROP
  • chỉ dùng với AFTER
  • gắn vào cơ sở dữ liệu hoặc máy chủ
  • không có bảng đặc biệt
Xây dựng và Tối ưu hóa Trigger trong SQL Server

AFTER và FOR

CREATE TRIGGER DatabaseChangeLog
FOR CREATE_TABLE
[...]
Xây dựng và Tối ưu hóa Trigger trong SQL Server

AFTER và FOR

CREATE TRIGGER TrackDatabaseTables
FOR CREATE_TABLE
[...]

AFTER = FOR

Xây dựng và Tối ưu hóa Trigger trong SQL Server

Điều kiện tiên quyết cho trigger DDL

  • Đối tượng đích (máy chủ hoặc CSDL)
  • Mô tả trigger
  • Sự kiện kích hoạt (DDL)
  • Tên trigger
  • DATABASE
  • Bảng log thay đổi định nghĩa
  • CREATE_TABLE,ALTER_TABLE,DROP_TABLE
  • TrackTableChanges
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Định nghĩa trigger DDL

CREATE TRIGGER TrackTableChanges

ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS INSERT INTO TablesChangeLog (EventData, ChangedBy) VALUES (EVENTDATA(), USER);
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Ngăn các sự kiện kích hoạt cho trigger DML

CREATE TRIGGER PreventTableDeletion
ON DATABASE
FOR DROP_TABLE

AS RAISERROR ('Bạn không được phép xóa bảng khỏi cơ sở dữ liệu này.', 16, 1); ROLLBACK;
Xây dựng và Tối ưu hóa Trigger trong SQL Server

Ayo berlatih!

Xây dựng và Tối ưu hóa Trigger trong SQL Server

Preparing Video For Download...