Тригери INSTEAD OF

Цієї можливості нема у стандарті SQL-99, але вона є в багатьох комерційних СУБД, зокрема в Ms SQL. Замість слів BEFORE або AFTER ставиться вираз INSTEAD OF, тобто замість, що означає: код дії тригера повинен виконуватись замість тої операції, яка викликала спрацювання тригера.

 

Цей засіб вдало застосовується до візій, оскільки останні рідко дозволяють безпосередню модифікацію. Тригер INSTEAD OF замість зміни змісту візії виконує іншу операцію, доцільну в конкретному випадку.

 

Приклад 14.9. Знову звернімося до прикладу 14.27.

Ця візія містить інформацію про всі фільми, випущені студією Paramount. При додаванні кортежів у відношення Movie туди не заносилось значення студії Paramount. Більш досконале рішення полягає у використанні тригера INSTEAD OF.

 

Рис.14.12. Приклад тригера INSTEAD OF.

 

У рядках 5, 6 у новий кортеж вставляються не 2, а 3 значення, в тому числі атрибуту studioName завжди присвоюється значення ‘Paramount’.