IniziaInizia gratis

Tenere traccia delle esecuzioni dei trigger

Un aspetto importante nel monitoraggio dei trigger è avere uno storico delle loro esecuzioni. Questo ti permette di collegare i tempi tra le esecuzioni del trigger e eventuali problemi che si verificano nel database.

Se i tempi coincidono, è possibile che i problemi siano stati causati dal trigger.

SQL Server fornisce informazioni sull'esecuzione di tutti i trigger attualmente in memoria tramite la vista sys.dm_exec_trigger_stats. Tuttavia, quando un trigger viene rimosso dalla memoria, tutte le informazioni a riguardo vengono eliminate anche dalla vista, quindi perdi lo storico delle esecuzioni.

Per superare questa limitazione, decidi di utilizzare la tabella TriggerAudit per archiviare le informazioni su qualsiasi tentativo di modifica delle righe nella tabella Orders, perché è stato segnalato che la tabella è spesso poco reattiva.

Questo esercizio fa parte del corso

Creare e ottimizzare i trigger in SQL Server

Visualizza il corso

Istruzioni dell'esercizio

  • Modifica il trigger PreventOrdersUpdate.
  • Imposta il trigger in modo che si attivi quando vengono aggiornate righe nella tabella Orders.
  • Aggiungi ulteriori dettagli sull'esecuzione del trigger nella tabella TriggerAudit.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- Modify the trigger to add new functionality
___ TRIGGER PreventOrdersUpdate
ON ___
-- Prevent any row changes
INSTEAD OF ___
AS
	-- Keep history of trigger executions
	INSERT INTO ___ (TriggerName, ExecutionDate)
	SELECT 'PreventOrdersUpdate', 
           GETDATE();

	RAISERROR ('Updates on "Orders" table are not permitted.
                Place a new order to add new products.', 16, 1);
Modifica ed esegui il codice