Déclencheurs DDL

Création et optimisation de déclencheurs dans SQL Server

Florin Angelescu

Instructor

Définition et propriétés

Déclencheurs DML

  • événements associés aux instructions DML INSERT, UPDATE, DELETE
  • utilisés avec AFTER ou INSTEAD OF
  • attachés à des tables ou des vues
  • tables spéciales inserted et deleted

Déclencheurs DDL

  • événements associés aux instructions DDL CREATE, ALTER, DROP
  • utilisés seulement avec AFTER
  • attachés à des bases de données ou des serveurs
  • aucune table spéciale
Création et optimisation de déclencheurs dans SQL Server

AFTER et FOR

CREATE TRIGGER DatabaseChangeLog
FOR CREATE_TABLE
[...]
Création et optimisation de déclencheurs dans SQL Server

AFTER et FOR

CREATE TRIGGER TrackDatabaseTables
FOR CREATE_TABLE
[...]

AFTER = FOR

Création et optimisation de déclencheurs dans SQL Server

Préalables aux déclencheurs DDL

  • Objet ciblé (serveur ou base de données)
  • Description du déclencheur
  • Événements déclencheurs (DDL)
  • Nom du déclencheur
  • DATABASE
  • Table de journal des changements de définition
  • CREATE_TABLE,ALTER_TABLE,DROP_TABLE
  • TrackTableChanges
Création et optimisation de déclencheurs dans SQL Server

Définition d'un déclencheur DDL

CREATE TRIGGER TrackTableChanges

ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS INSERT INTO TablesChangeLog (EventData, ChangedBy) VALUES (EVENTDATA(), USER);
Création et optimisation de déclencheurs dans SQL Server

Empêcher les événements déclencheurs pour les déclencheurs DML

CREATE TRIGGER PreventTableDeletion
ON DATABASE
FOR DROP_TABLE

AS RAISERROR ('You are not allowed to remove tables from this database.', 16, 1); ROLLBACK;
Création et optimisation de déclencheurs dans SQL Server

Passons à la pratique !

Création et optimisation de déclencheurs dans SQL Server

Preparing Video For Download...