Trigger DDL

Creare e ottimizzare i trigger in SQL Server

Florin Angelescu

Instructor

Definizione e proprietà

Trigger DML

  • eventi associati a istruzioni DML INSERT, UPDATE, DELETE
  • usati con AFTER o INSTEAD OF
  • collegati a tabelle o viste
  • tabelle speciali inserted e deleted

Trigger DDL

  • eventi associati a istruzioni DDL CREATE, ALTER, DROP
  • usati solo con AFTER
  • collegati a database o server
  • nessuna tabella speciale
Creare e ottimizzare i trigger in SQL Server

AFTER e FOR

CREATE TRIGGER DatabaseChangeLog
FOR CREATE_TABLE
[...]
Creare e ottimizzare i trigger in SQL Server

AFTER e FOR

CREATE TRIGGER TrackDatabaseTables
FOR CREATE_TABLE
[...]

AFTER = FOR

Creare e ottimizzare i trigger in SQL Server

Prerequisiti dei trigger DDL

  • Oggetto target (server o database)
  • Descrizione del trigger
  • Eventi di attivazione (DDL)
  • Nome del trigger
  • DATABASE
  • Tabella di log con modifiche alla definizione
  • CREATE_TABLE,ALTER_TABLE,DROP_TABLE
  • TrackTableChanges
Creare e ottimizzare i trigger in SQL Server

Definizione di trigger DDL

CREATE TRIGGER TrackTableChanges

ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS INSERT INTO TablesChangeLog (EventData, ChangedBy) VALUES (EVENTDATA(), USER);
Creare e ottimizzare i trigger in SQL Server

Impedire gli eventi di attivazione per i trigger DML

CREATE TRIGGER PreventTableDeletion
ON DATABASE
FOR DROP_TABLE

AS RAISERROR ('You are not allowed to remove tables from this database.', 16, 1); ROLLBACK;
Creare e ottimizzare i trigger in SQL Server

Passiamo alla pratica !

Creare e ottimizzare i trigger in SQL Server

Preparing Video For Download...