Тригери є вимогою до будь-яких складних правил цілісності даних. Вони не можуть бути застосовані ніде, крім бази даних, або у вас виникнуть проблеми з цілісністю даних.
Вони також є найкращим місцем для аудиту, якщо ви не хочете зафіксувати всі зміни в базі даних (що є проблемою аудиту в додатку).
Тригери можуть спричинити проблеми з продуктивністю, якщо вони не написані ретельно і недостатньо знають розробники, щоб їх добре написати. Це частина, де вони отримують свій поганий реп.
Тригери часто повільніше, ніж інші засоби підтримки цілісності даних, тому, якщо ви можете використовувати обмеження для перевірки, використовуйте це замість тригера.
Неважко писати погані тригери, які роблять дурні речі, як-от намагаються надсилати електронні листи. Ви дійсно хочете не мати можливості змінювати записи в db, якщо сервер електронної пошти знижується?
На сервері SQL тригери працюють на групі записів. Надто часто розробники думають, що їм потрібно обробляти лише одну вставку, оновлення або видалення записів. Це не єдиний вид змін даних, які відбуваються з базою даних, і всі тригери повинні бути протестовані в умовах зміни 1 запису та багатьох змін записів. Забуття провести другий тест може призвести до надзвичайно погано працюючих тригерів або втрати цілісності даних.