Триггеры INSTEAD OF в SQL целесообразно использовать в следующих ситуациях:
- Для проверки на наличие ошибок или значений в одном или нескольких столбцах и выполнения дополнительных действий перед вставкой, обновлением или удалением одной строки или нескольких строк. 1 Например, если обновляемое значение начинает превышать определённое значение, с помощью триггера можно либо задать вывод сообщения об ошибке и откатить транзакцию, либо сделать вставку новой записи в след аудита. 1
- Для сохранения целостности данных. 2 Если для таблицы определён ряд ограничений, а вставляется целый набор строк, причём в одной строке одно из ограничений нарушено, то вся операция вставки завершится неудачей. 2 С помощью триггеров INSTEAD OF можно строки с нарушениями отправить в журнал, а корректные — ввести в таблицу. 2
- При работе с представлениями. 23 Это позволяет поддерживать такие модификации представлений, которые были бы невозможны при других обстоятельствах, например, даёт возможность выполнять обновление представлений, использующих агрегирующие функции. 2
Например, в представлении, основанном на нескольких базовых таблицах, триггер INSTEAD OF нужен для поддержки операций вставки, обновления и удаления, которые ссылаются на данные больше чем в одной таблице. 1