I Trigger sono spesso motivo di discordia tra sviluppatori e DBA, tra chi personalizza una soluzione standard e chi la fornisce, tra clienti e software vendor. Sembrano facili da scrivere, ma scrivere Trigger efficienti non è affatto semplice e quando la loro complessità aumenta, possono presentare effetti collaterali in grado di confondere persino l’autore. Tuttavia, per quanti difetti possano avere, hanno un pregio dannatamente importante: permettono di risolvere problemi che non potrebbero essere gestiti in qualsiasi altro layer applicativo. Quindi, se non potete farne a meno, non vi resta che imparare i trucchi e delle best practices per scriverli e gestirli in modo efficiente.
Questo post raccoglie alcuni link a FAQ e Best Practices che possono aiutarvi a scrivere Trigger efficienti evitando i più comuni side effect.
FAQ
- Come possiamo garantirne l’ordine di attivazione dei trigger definiti su una tabella?
- Come posso estrarre la lista dei trigger disabilitati per una o più tabelle, o per l’intero database?
- E’ possibile disabilitare un Trigger dall’interno di un altro? Se sì, che effetto produce?
- E’ possibile eseguire il debug di un Trigger?
Best practices
- L’effetto che può avere un trigger sugli statement INSERT, UPDATE, DELETE e MERGE (con clausola OUTPUT)
- Regole di attivazione dei trigger definiti sulla tabella target di un comando MERGE
- Il primo comando di ogni Trigger
- SQL Server 2014 DML Triggers: Tips & Tricks from the Field
Buona lettura!