Déclencheurs AFTER (DML)

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

Florin Angelescu

Instructor

Définition et propriétés

  • Exécute un ensemble d'actions lorsqu'il est déclenché
  • Les actions s'exécutent seulement après la fin de l'événement DML
  • Utilisé avec les instructions INSERT, UPDATE et DELETE pour les tables ou vues
Création et optimisation de déclencheurs dans SQL Server

Prérequis d'un déclencheur AFTER

  • Table ou vue requise pour les instructions DML
  • Le déclencheur sera attaché à cette même table

Sortie de la table Products utilisée pour cet exemple :

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      |
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
Création et optimisation de déclencheurs dans SQL Server

Prérequis d'un déclencheur AFTER

  • Table cible
  • Description du déclencheur
  • Événement de déclenchement (DML)
  • Nom du déclencheur
  • Products
  • Enregistrer l'info des produits supprimés dans une table d'historique
  • DELETE
  • TrackRetiredProducts
Création et optimisation de déclencheurs dans SQL Server

Résumé des prérequis d'un déclencheur AFTER

Quand des lignes sont retirées de la table Products

Enregistrer l'information requise de ces lignes dans la table RetiredProducts.

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      | X
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
| Product | Measure | RemovalDate |
|---------|---------|-------------|
| Apricot | kg      | 19.04.2019  |
Création et optimisation de déclencheurs dans SQL Server

Définition d'un déclencheur AFTER

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
Création et optimisation de déclencheurs dans SQL Server

Tables « inserted » et « deleted »

  • Tables spéciales utilisées par les déclencheurs DML
  • Créées automatiquement par SQL Server
Création et optimisation de déclencheurs dans SQL Server

Tables « inserted » et « deleted »

  • Tables spéciales utilisées par les déclencheurs DML
  • Créées automatiquement par SQL Server
Table spéciale INSERT UPDATE DELETE
inserted nouvelles lignes nouvelles lignes S.O.
deleted S.O. lignes mises à jour lignes supprimées
Création et optimisation de déclencheurs dans SQL Server

Le déclencheur AFTER complet

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
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...