Trigger sind eine Voraussetzung für komplexe Datenintegritätsregeln. Diese können nur in der Datenbank erzwungen werden, da sonst Probleme mit der Datenintegrität auftreten.
Sie sind auch der beste Ort für die Überwachung, es sei denn, Sie möchten nicht alle Änderungen an der Datenbank erfassen (dies ist das Problem der Überwachung über die Anwendung).
Trigger können zu Leistungsproblemen führen, wenn sie nicht sorgfältig geschrieben werden und wenn nicht genügend Entwickler über ausreichende Kenntnisse verfügen, um sie gut zu schreiben. Dies ist ein Teil dessen, wo sie ihren schlechten Ruf bekommen.
Trigger sind häufig langsamer als andere Mittel zur Aufrechterhaltung der Datenintegrität. Wenn Sie also eine Prüfbedingung verwenden können, verwenden Sie diese anstelle eines Triggers.
Es ist einfach, schlechte Trigger zu schreiben, die dumme Dinge tun, wie beispielsweise den Versuch, E-Mails zu senden. Möchten Sie wirklich nicht in der Lage sein, Datensätze in der Datenbank zu ändern, wenn der E-Mail-Server ausfällt?
In SQL Server verarbeiten Trigger einen Stapel von Datensätzen. Nur allzu oft denken Entwickler, dass sie nur einen Datensatz einfügen, aktualisieren oder löschen müssen. Dies ist nicht die einzige Art von Datenänderungen, die an einer Datenbank vorgenommen werden. Alle Trigger sollten unter den Bedingungen einer Datensatzänderung und vieler Datensatzänderungen getestet werden. Wenn Sie den zweiten Test nicht durchführen, kann dies zu einer extrem schlechten Leistung der Trigger oder zu einem Verlust der Datenintegrität führen.