Acompanhando as execuções de triggers
Um fator importante ao monitorar triggers é manter um histórico de suas execuções. Isso permite associar os horários entre as execuções dos triggers e quaisquer problemas que ocorram no banco de dados.
Se os horários coincidirem, é possível que os problemas tenham sido causados pelo trigger.
O SQL Server fornece informações sobre a execução de quaisquer triggers que estejam atualmente na memória, na exibição sys.dm_exec_trigger_stats. Mas, quando um trigger é removido da memória, todas as informações sobre ele também são removidas dessa exibição, e você perde o histórico de execuções do trigger.
Para contornar essa limitação, você decide usar a tabela TriggerAudit para armazenar informações sobre quaisquer tentativas de modificar linhas na tabela Orders, pois há relatos de que a tabela frequentemente fica lenta ou sem resposta.
Este exercício faz parte do curso
Criando e Otimizando Triggers no SQL Server
Instruções do exercício
- Modifique o trigger
PreventOrdersUpdate. - Defina o trigger para disparar quando linhas forem atualizadas na tabela
Orders. - Adicione detalhes adicionais sobre a execução do trigger na tabela
TriggerAudit.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- 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);