Registrar las ejecuciones de los triggers
Un factor importante al monitorizar triggers es disponer de un historial de sus ejecuciones. Esto te permite relacionar los momentos en que se ejecutan los triggers con cualquier incidencia que ocurra en la base de datos.
Si los tiempos coinciden, es posible que los problemas los haya causado el trigger.
SQL Server ofrece información sobre la ejecución de los triggers que están actualmente en memoria en la vista sys.dm_exec_trigger_stats. Pero cuando un trigger se elimina de la memoria, también desaparece su información de la vista, así que pierdes el historial de ejecuciones del trigger.
Para evitar esta limitación, decides usar la tabla TriggerAudit para guardar información sobre cualquier intento de modificar filas en la tabla Orders, porque se ha informado de que la tabla a menudo no responde.
Este ejercicio forma parte del curso
Crear y optimizar desencadenadores en SQL Server
Instrucciones del ejercicio
- Modifica el trigger
PreventOrdersUpdate. - Configura el trigger para que se dispare cuando se actualicen filas en la tabla
Orders. - Añade información adicional sobre la ejecución del trigger en la tabla
TriggerAudit.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- 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);