Aan de slagGa gratis aan de slag

Bijhouden wanneer triggers worden uitgevoerd

Een belangrijk aspect bij het monitoren van triggers is dat je een historie hebt van hun uitvoering. Zo kun je de timing van trigger-runs koppelen aan eventuele problemen die in de database optreden.

Als de tijden overeenkomen, is het mogelijk dat de problemen door de trigger zijn veroorzaakt.

SQL Server biedt informatie over de uitvoering van triggers die momenteel in het geheugen staan via de view sys.dm_exec_trigger_stats. Maar zodra een trigger uit het geheugen wordt verwijderd, verdwijnt alle informatie erover ook uit die view en raak je de uitvoeringsgeschiedenis kwijt.

Om deze beperking te omzeilen, besluit je de tabel TriggerAudit te gebruiken om informatie op te slaan over elke poging om rijen in de tabel Orders te wijzigen, omdat is gemeld dat die tabel vaak niet reageert.

Deze oefening maakt deel uit van de cursus

Triggers in SQL Server bouwen en optimaliseren

Cursus bekijken

Oefeninstructies

  • Wijzig de trigger PreventOrdersUpdate.
  • Zorg dat de trigger afgaat wanneer rijen in de tabel Orders worden bijgewerkt.
  • Voeg extra details over de triggeruitvoering toe aan de tabel TriggerAudit.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

-- 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);
Code bewerken en uitvoeren