На рис. 6.8 приведена схема запуску тригерів FOR (AFTER) і INSTEAD OF.
Мал. 6.8. Схема запуску тригерів FOR (AFTER) і INSTEAD OF
Найбільш характерні області застосування тригерів - це забезпечення посилальної і семантичної цілісності бази даних, створення журналів, підтримка складних обмежень і перевірок, реакція сервера у відповідь на дії користувача.
Мал. 6.9. Створення нового тригера
Мал. 6.10. Шаблон створення нового тригера
Загальний синтаксис створення тригера:
CREATE TRIGGER <Имя триггера>
ON <Имя таблицы или вида>
AS
1. Тригер на підтримку актуального кількості товарів на складі при додаванні поставок деталей (рис. 6.11).
Мал. 6.11. Текст тригера №1
2. Тригер на підтримку актуального кількості товарів на складі при видаленні поставок (рис. 6.12).
Мал. 6.12. Текст тригера №2
3. Тригер на підтримку актуального кількості товарів на складі при відпустці деталей в цеху (рис. 6.13).
Мал. 6.13. Текст тригера №3
4. Перевірка допустимості значення дати поставки при здійсненні нової поставки деталей (рис. 6.14).
Мал. 6.14. Текст тригера №4
5. Перевірка допустимості значення дати поставки при редагуванні існуючої поставки деталей (рис. 6.15).
Мал. 6.15. Текст тригера №5
Завдання: створіть два тригера для своєї бази, в звіт помістіть їх опис та код створення.
1. Що таке бізнес-логіка програми в тілі сервера БД?
2. Охарактеризуйте архітектури інформаційних систем?
3. У чому переваги і недоліки використання бізнес-логіки додатка в тілі сервера баз даних?
4. Що таке тригер? Як він активізується в інформаційній системі?
5. Охарактеризуйте особливості роботи з тригерами в СУБД MS SQL Server.
6. Наведіть приклад тригера на підтримку цілісності БД.
7. Чим тригер відрізняється від процедури, що?
8. Хто може викликати тригер і збережену процедуру?
9. Охарактеризуйте синтаксис мови збережених процедур СУБД MS SQL Server.
10. Як значення параметрів передаються в збережену процедуру?
11. Наведіть приклад процедури з повертаються значеннями параметрів.
12. Наведіть приклад процедури, що для організації звіту за інформацією, зібраною в створеній БД.
13. Наведіть приклад процедури, що для підтримки історичності реєстраційних відомостей у створеній БД.
14. Що таке вид над таблицею? Якою командою він створюється?
15. Наведіть приклад використання виду в створеній БД.
16. Чи може тригер бути пов'язаний з видом?