Тригери DDL

Створення та оптимізація тригерів у SQL Server

Florin Angelescu

Instructor

Визначення та властивості

Тригери DML

  • події, пов'язані з операторами DML INSERT, UPDATE, DELETE
  • використовуються з AFTER або INSTEAD OF
  • прикріплюються до таблиць або подань
  • спеціальні таблиці inserted і deleted

Тригери DDL

  • події, пов'язані з операторами DDL CREATE, ALTER, DROP
  • використовуються лише з AFTER
  • прикріплюються до баз даних або серверів
  • без спеціальних таблиць
Створення та оптимізація тригерів у SQL Server

AFTER і FOR

CREATE TRIGGER DatabaseChangeLog
FOR CREATE_TABLE
[...]
Створення та оптимізація тригерів у SQL Server

AFTER і FOR

CREATE TRIGGER TrackDatabaseTables
FOR CREATE_TABLE
[...]

AFTER = FOR

Створення та оптимізація тригерів у SQL Server

Передумови для тригера DDL

  • Цільовий об'єкт (сервер або база даних)
  • Опис тригера
  • Події спрацювання тригера (DDL)
  • Назва тригера
  • DATABASE
  • Журнальна таблиця змін визначень
  • CREATE_TABLE,ALTER_TABLE,DROP_TABLE
  • TrackTableChanges
Створення та оптимізація тригерів у SQL Server

Визначення тригера DDL

CREATE TRIGGER TrackTableChanges

ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS INSERT INTO TablesChangeLog (EventData, ChangedBy) VALUES (EVENTDATA(), USER);
Створення та оптимізація тригерів у SQL Server

Запобігання подіям спрацювання для тригерів DML

CREATE TRIGGER PreventTableDeletion
ON DATABASE
FOR DROP_TABLE

AS RAISERROR ('You are not allowed to remove tables from this database.', 16, 1); ROLLBACK;
Створення та оптимізація тригерів у SQL Server

Давайте потренуємось!

Створення та оптимізація тригерів у SQL Server

Preparing Video For Download...