Buena respuesta de Rolando.
Además, los disparadores no deben usarse para la lógica, porque un par de disparadores interrelacionados más tarde, las cosas se volverán confusas rápidamente. Un buen conjunto de instrucciones en un procedimiento almacenado o en un procedimiento del lado del cliente puede transmitir la lógica empresarial con mayor claridad que un montón de lógica oculta en la base de datos. También hay limitaciones en los desencadenantes con respecto a la tabla desde la que se desencadenan, por lo que puede encontrarse dividiendo su lógica en dos lugares diferentes.
Además, puede encontrar formas de optimizar en qué momento estos cálculos suceden en su servidor de lógica de negocios, mientras que un disparador se disparará cada vez. Te encontrarás apagando el gatillo, actualizando la tabla y luego volviendo a habilitar el gatillo, lo que también significa que debes poner la lógica del gatillo en ese código.
Además, no es necesario que tenga toda la lógica en la parte de lógica de negocios del código, es posible que desee aplicar la integridad de la tabla mediante el uso de procedimientos almacenados. Esto puede iniciar una transacción, realizar múltiples actualizaciones y hacer que las cosas retrocedan muy bien si algo falla. De esa manera, alguien que mira la base de datos puede ver la lógica para insertar un pedido, por ejemplo. Esto es menos importante en el mundo actual, ya que los servicios web pueden ser la interfaz de acceso único a la base de datos; pero en el caso de que varios ejecutables tengan acceso a la base de datos, esto puede ser enorme.
Además, de todas formas tendrá transacciones, no ejecutará sus disparadores sin uno ... ¿verdad? Por lo tanto, es bueno saber cómo iniciar una transacción; hacer algunas cosas y luego finalizar una transacción. Si ve este patrón en su código, una pieza más de código que lo use será ligero en la carga cognitiva. Un disparador, si recuerda que está allí, lo obligará a pensar de manera diferente para aquellas transacciones que se ven afectadas por el disparador, especialmente si se extraen otras tablas que también pueden tener disparadores.
Básicamente, entre un trabajo cron programado regularmente (o trabajo de agente de base de datos) y buenos procedimientos almacenados, puede lograr el 99% de lo que desea. El 1%; repensar el proyecto.