Zacznij terazZacznij za darmo

Śledzenie wykonań wyzwalacza

Jednym z ważnych elementów monitorowania wyzwalaczy jest przechowywanie historii ich wykonań. Dzięki temu możesz powiązać momenty uruchomienia wyzwalaczy z problemami, które pojawiają się w bazie danych.

Jeśli czasy się pokrywają, istnieje możliwość, że problemy zostały spowodowane przez wyzwalacz.

SQL Server udostępnia informacje o wykonaniu wyzwalaczy aktualnie przechowywanych w pamięci w widoku sys.dm_exec_trigger_stats. Jednak gdy wyzwalacz zostanie usunięty z pamięci, wszelkie informacje o nim znikają również z tego widoku – tracisz wtedy historię jego wykonań.

Aby obejść to ograniczenie, postanawiasz skorzystać z tabeli TriggerAudit do zapisywania informacji o każdej próbie modyfikacji wierszy w tabeli Orders, ponieważ użytkownicy zgłaszają, że tabela często przestaje odpowiadać.

To ćwiczenie jest częścią kursu

Tworzenie i optymalizacja triggerów w SQL Server

Zobacz kurs

Instrukcje do ćwiczenia

  • Zmodyfikuj wyzwalacz PreventOrdersUpdate.
  • Ustaw wyzwalacz tak, aby uruchamiał się przy aktualizacji wierszy w tabeli Orders.
  • Dodaj dodatkowe informacje o wykonaniu wyzwalacza do tabeli TriggerAudit.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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);
Edytuj i uruchom kod