Wyzwalacze AFTER (DML)

Tworzenie i optymalizacja triggerów w SQL Server

Florin Angelescu

Instructor

Definicja i właściwości

  • Wykonuje zestaw operacji po wywołaniu
  • Operacje są wykonywane dopiero po zakończeniu zdarzenia DML
  • Używany z instrukcjami INSERT, UPDATE i DELETE dla tabel lub widoków
Tworzenie i optymalizacja triggerów w SQL Server

Wymagania wstępne wyzwalacza AFTER

  • Tabela lub widok wymagany dla instrukcji DML
  • Wyzwalacz zostanie dołączony do tej samej tabeli

Dane wyjściowe z tabeli Products użyte w przykładzie:

| 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      |
Tworzenie i optymalizacja triggerów w SQL Server

Wymagania wstępne wyzwalacza AFTER

  • Tabela docelowa
  • Opis wyzwalacza
  • Zdarzenie wywołujące wyzwalacz (DML)
  • Nazwa wyzwalacza
  • Products
  • Zapisuj informacje o usuniętych produktach do tabeli historii
  • DELETE
  • TrackRetiredProducts
Tworzenie i optymalizacja triggerów w SQL Server

Podsumowanie wymagań wstępnych wyzwalacza AFTER

Gdy wiersze są usuwane z tabeli Products...

Zapisz wymagane informacje z tych wierszy do tabeli 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  |
Tworzenie i optymalizacja triggerów w SQL Server

Definicja wyzwalacza AFTER

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
Tworzenie i optymalizacja triggerów w SQL Server

Tabele "inserted" i "deleted"

  • Tabele specjalne używane przez wyzwalacze DML
  • Tworzone automatycznie przez SQL Server
Tworzenie i optymalizacja triggerów w SQL Server

Tabele "inserted" i "deleted"

  • Tabele specjalne używane przez wyzwalacze DML
  • Tworzone automatycznie przez SQL Server
Tabela specjalna INSERT UPDATE DELETE
inserted nowe wiersze nowe wiersze N/A
deleted N/A zaktualizowane wiersze usunięte wiersze
Tworzenie i optymalizacja triggerów w SQL Server

Kompletny wyzwalacz AFTER

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
Tworzenie i optymalizacja triggerów w SQL Server

Czas na ćwiczenia!

Tworzenie i optymalizacja triggerów w SQL Server

Preparing Video For Download...