Os gatilhos são um requisito para regras complexas de integridade de dados. Eles não podem ser aplicados em qualquer lugar, exceto no banco de dados, ou você terá problemas de integridade dos dados.
Eles também são o melhor local para auditoria, a menos que você não queira capturar todas as alterações no banco de dados (que é o problema da auditoria do aplicativo).
Os gatilhos podem causar problemas de desempenho se não forem escritos com cuidado e se os desenvolvedores não tiverem conhecimento suficiente para escrevê-los bem. Isso faz parte de onde eles conseguem o rap.
Os gatilhos geralmente são mais lentos que outros meios de manter a integridade dos dados; portanto, se você puder usar uma restrição de verificação, use-o em vez de um gatilho.
É fácil escrever gatilhos ruins que fazem coisas estúpidas, como tentar enviar e-mails. Deseja realmente não conseguir alterar os registros no banco de dados se o servidor de email cair?
No servidor SQL, os gatilhos operam em um lote de registros. Com muita frequência, os desenvolvedores pensam que precisam lidar apenas com inserções, atualizações ou exclusões de um registro. Esse não é o único tipo de alteração de dados que ocorre em um banco de dados e todos os acionadores devem ser testados sob as condições de 1 alteração de registro e muitas alterações de registro. Esquecer-se de fazer o segundo teste pode levar a gatilhos com desempenho extremamente ruim ou perda de integridade dos dados.