Gute Antwort von Rolando.
Außerdem - Trigger sollten nicht für die Logik verwendet werden, da einige Dinge später zu einer Verwirrung führen, da die Dinge schnell verwirrend werden. Ein netter Satz von Anweisungen in einer gespeicherten Prozedur oder einer clientseitigen Prozedur kann die Geschäftslogik klarer vermitteln als eine Reihe versteckter Logik in der Datenbank. Es gibt auch Einschränkungen für Trigger in Bezug auf die Tabelle, von der sie ausgelöst werden. Daher können Sie feststellen, dass Sie Ihre Logik an zwei verschiedenen Stellen aufteilen.
Darüber hinaus finden Sie möglicherweise Möglichkeiten, um zu optimieren, wann diese Berechnungen in Ihrem Geschäftslogikserver stattfinden, während jedes Mal ein Auslöser ausgelöst wird. Sie werden feststellen, dass Sie den Trigger ausschalten, die Tabelle aktualisieren und dann den Trigger wieder aktivieren - was auch bedeutet, dass Sie die Triggerlogik in diesen Code einfügen müssen.
Darüber hinaus möchten Sie möglicherweise nicht die gesamte Logik im Geschäftslogikteil des Codes haben und die Tabellenintegrität mithilfe gespeicherter Prozeduren erzwingen. Dies kann eine Transaktion starten, mehrere Updates durchführen und dazu führen, dass die Dinge gut zurückgesetzt werden, wenn etwas fehlschlägt. Auf diese Weise kann jemand, der sich die Datenbank ansieht, beispielsweise die Logik zum Einfügen einer Bestellung erkennen. Dies ist in der heutigen Welt weniger wichtig, da Webdienste die einzige Zugriffsschnittstelle zur Datenbank sein können. In dem Fall, in dem mehrere ausführbare Dateien Zugriff auf die Datenbank haben, kann dies sehr groß sein.
Außerdem - Sie werden sowieso Transaktionen haben - werden Sie Ihre Trigger nicht ohne einen ausführen ... richtig? Es ist also gut zu wissen, wie man eine Transaktion startet. mach ein paar Sachen; und beenden Sie dann eine Transaktion. Wenn Sie dieses Muster in Ihrem Code sehen, wird ein weiterer Code, der es verwendet, die kognitive Belastung beeinträchtigen. Ein Trigger zwingt Sie, wenn Sie sich daran erinnern, dass er vorhanden ist, dazu, für die vom Trigger betroffenen Transaktionen anders zu denken, insbesondere wenn andere Tabellen eingezogen werden, die möglicherweise auch Trigger haben.
Grundsätzlich können Sie zwischen einem regelmäßig geplanten Cron-Job (oder einem Datenbankagenten-Job) und gut gespeicherten Prozeduren 99% der gewünschten Ergebnisse erzielen. Die 1%; Überdenken Sie das Projekt.