Bonne réponse de Rolando.
De plus - les déclencheurs ne doivent pas être utilisés pour la logique, car quelques déclencheurs interreliés plus tard, les choses deviendront rapidement confuses. Un bel ensemble d'instructions dans une procédure stockée ou une procédure côté client peut traverser la logique métier plus clairement qu'un tas de logique cachée dans la base de données. Il existe également des limitations sur les déclencheurs en ce qui concerne la table à partir de laquelle ils sont déclenchés - vous pouvez donc vous retrouver à diviser votre logique en deux endroits différents.
De plus, vous pouvez trouver des moyens d'optimiser à quel moment ces calculs se produisent dans votre serveur de logique métier, alors qu'un déclencheur va se déclencher à chaque fois. Vous vous retrouverez à désactiver le déclencheur, à mettre à jour la table, puis à réactiver le déclencheur - ce qui signifie également que vous devez mettre la logique du déclencheur dans ce code.
De plus - vous n'avez pas besoin de disposer de toute la logique dans la partie logique métier du code - vous souhaiterez peut-être appliquer l'intégrité de la table à l'aide de procédures stockées. Cela peut démarrer une transaction, effectuer vos multiples mises à jour et faire en sorte que les choses se déroulent correctement en cas d'échec. De cette façon, quelqu'un qui regarde la base de données peut voir la logique pour insérer une commande, par exemple. Ceci est moins important dans le monde d'aujourd'hui car les services Web peuvent être l'interface d'accès unique à la base de données; mais dans le cas où plusieurs exécutables ont accès à la base de données, cela peut être énorme.
De plus - vous allez quand même avoir des transactions - vous n'allez pas exécuter vos déclencheurs sans un ... non? Il est donc bon de savoir comment démarrer une transaction; faire des trucs; puis terminer une transaction. Si vous voyez ce modèle dans votre code, un morceau de code supplémentaire qui l'utilisera sera léger sur la charge cognitive. Un déclencheur, si vous vous souvenez qu'il existe, vous obligera à penser différemment pour les transactions qui sont affectées par le déclencheur, en particulier si d'autres tables sont extraites qui peuvent également avoir des déclencheurs.
Fondamentalement, entre un travail périodique planifié (ou un travail d'agent de base de données) et de bonnes procédures stockées, vous pouvez accomplir 99% de ce que vous voulez. Le 1%; repenser le projet.