Triggery AFTER (DML)

Tvorba a optimalizace triggerů v SQL Serveru

Florin Angelescu

Instructor

Definice a vlastnosti

  • Provede sadu akcí při spuštění
  • Akce se provedou až po dokončení události DML
  • Používá se s příkazy INSERT, UPDATE a DELETE pro tabulky nebo pohledy
Tvorba a optimalizace triggerů v SQL Serveru

Předpoklady triggeru AFTER

  • Tabulka nebo pohled potřebný pro příkazy DML
  • Trigger bude připojen ke stejné tabulce

Výstup z tabulky Products použitý v tomto příkladu:

| 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      |
Tvorba a optimalizace triggerů v SQL Serveru

Předpoklady triggeru AFTER

  • Cílová tabulka
  • Popis triggeru
  • Spouštěcí událost triggeru (DML)
  • Název triggeru
  • Products
  • Uložit informace o odstraněných produktech do historické tabulky
  • DELETE
  • TrackRetiredProducts
Tvorba a optimalizace triggerů v SQL Serveru

Shrnutí předpokladů triggeru AFTER

Když jsou odstraněny řádky z tabulky Products...

Uložte požadované informace z těchto řádků do tabulky 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  |
Tvorba a optimalizace triggerů v SQL Serveru

Definice triggeru AFTER

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
Tvorba a optimalizace triggerů v SQL Serveru

Tabulky „inserted" a „deleted"

  • Speciální tabulky používané DML triggery
  • Automaticky vytvářeny SQL Serverem
Tvorba a optimalizace triggerů v SQL Serveru

Tabulky „inserted" a „deleted"

  • Speciální tabulky používané DML triggery
  • Automaticky vytvářeny SQL Serverem
Speciální tabulka INSERT UPDATE DELETE
inserted nové řádky nové řádky N/A
deleted N/A aktualizované řádky odebrané řádky
Tvorba a optimalizace triggerů v SQL Serveru

Kompletní trigger AFTER

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
Tvorba a optimalizace triggerů v SQL Serveru

Pojďme procvičovat!

Tvorba a optimalizace triggerů v SQL Serveru

Preparing Video For Download...