I trigger sono un requisito per qualsiasi complessa regola di integrità dei dati. Questi non possono essere applicati ovunque tranne il database o si avranno problemi di integrità dei dati.
Sono anche il posto migliore per il controllo a meno che non vogliate catturare tutte le modifiche al database (che è il problema dell'auditing dall'applicazione).
I trigger possono causare problemi di prestazioni se non scritti attentamente e non abbastanza sviluppatori sono abbastanza informati per scriverli bene. Questo fa parte di dove ottengono il loro cattivo rap.
I trigger sono spesso più lenti di altri mezzi per mantenere l'integrità dei dati, quindi se puoi usare un vincolo di controllo, usa quello invece di un trigger.
È facile scrivere trigger non validi che fanno cose stupide come provare a inviare email. Vuoi davvero non essere in grado di modificare i record nel db se il server di posta elettronica si arresta?
Nel server SQL, i trigger operano su un batch di record. Troppo spesso gli sviluppatori pensano di dover gestire solo inserimenti, aggiornamenti o eliminazioni di record. Questo non è l'unico tipo di modifica dei dati che si verifica in un database e tutti i trigger devono essere testati nelle condizioni di 1 modifica del record e di molte modifiche ai record. Dimenticare di fare il secondo test può portare a trigger estremamente scarsi o alla perdita di integrità dei dati.