Сучасні бази даних настільки складні і дані в них настільки взаємопов’язані, що потрібні спеціальні процедури, що захищають їх від випадкового порушення. Тригери дозволяють зберегти всі дані в цілості, навіть якщо недосвідчений користувач випадково натисне не на ту кнопку.
Головне призначення тригера – збереження цілісності даних, що відсилаються. Це означає, що навіть при зміні бази даних завжди є можливість повернути все назад. Також з їх допомогою можна проводити каскадні зміни в зв’язаних таблицях, при якому посилання змінюються одночасно і не порушують зв’язків.
Сам тригер являє собою збережену процедуру, яка запускається автоматично при зміні даних людиною або прикладною програмою. Він «включається», як тільки зміну даних завершено. Зміна даних і запущений тригер розглядаються як одна транзакція (дія), тому при появі або виявленні помилки все можна повернути назад, це називається rolled back.
[ads2] Робота тригераКаскадні зміни у взаємозалежних таблицях даних. Наприклад, якщо потрібно видалити певний стовпець або рядок відразу у всіх таблицях, використовується тригер.
Повернення до вихідних даних таблиць.
Відстеження різних відповідностей. Наприклад, схема тригера може передбачати заборону на зменшення ціни товару нижче закупівельної ціни.
Аналіз різних варіантів змін. Робота тригера дуже зручна для прорахунку варіантів до і після модифікації. Наприклад, можна порахувати, що буде, якщо знизити всі ціни на 5% або на скільки збільшиться собівартість всіх товарів при збільшенні транспортних витрат. Після аналізу всі дані можна повернути в первинний вигляд.
Створення тригера
Тригери створюються в поточній базі даних, проте в них можна вказувати об’єкти, розташовані в інших базах. Ім’я власника тригера має збігатися з іменем власника таблиці. Створюють тригер в реченні Creat. У полі For вказуються оператори зміни даних, після активації яких повинен включатися тригер. Наприклад, це можуть бути insert, update або delete по відношенню до таблиці.
Далі слід вказати тригерні дії або тригерні умови. Це ті дії, які повинні йти в якості реакції на вставку, видалення або оновлення даних.