Тригери AFTER (DML)

Створення та оптимізація тригерів у SQL Server

Florin Angelescu

Instructor

Визначення та властивості

  • Виконує набір дій під час спрацювання
  • Дії виконуються лише після завершення події DML
  • Використовується з операторами INSERT, UPDATE і DELETE для таблиць або подань
Створення та оптимізація тригерів у SQL Server

Передумови для тригера AFTER

  • Для операторів DML потрібна таблиця або подання
  • Тригер буде прикріплено до цієї ж таблиці

Вивід із таблиці Products для цього прикладу:

| 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      |
Створення та оптимізація тригерів у SQL Server

Передумови для тригера AFTER

  • Цільова таблиця
  • Опис тригера
  • Подія спрацювання (DML)
  • Назва тригера
  • Products
  • Зберігати відомості про видалені товари в таблиці історії
  • DELETE
  • TrackRetiredProducts
Створення та оптимізація тригерів у SQL Server

Підсумок передумов для тригера AFTER

Коли з таблиці Products видаляють рядки...

Збережіть потрібні дані з цих рядків у таблиці 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  |
Створення та оптимізація тригерів у SQL Server

Визначення тригера AFTER

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
Створення та оптимізація тригерів у SQL Server

Таблиці «inserted» і «deleted»

  • Спеціальні таблиці, що використовують тригери DML
  • Створюються автоматично SQL Server
Створення та оптимізація тригерів у SQL Server

Таблиці «inserted» і «deleted»

  • Спеціальні таблиці, що використовують тригери DML
  • Автоматично створюються SQL Server
Special table INSERT UPDATE DELETE
inserted new rows new rows N/A
deleted N/A updated rows removed rows
Створення та оптимізація тригерів у SQL Server

Повний тригер AFTER

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
Створення та оптимізація тригерів у SQL Server

Давайте потренуємось!

Створення та оптимізація тригерів у SQL Server

Preparing Video For Download...