ComeçarComece de graça

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

Ver curso

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);
Editar e executar o código