Hålla koll på triggerkörningar
En viktig faktor vid övervakning av triggers är att ha en historik över deras körningar. Det gör det möjligt att koppla ihop tidpunkterna för triggerkörningar med eventuella problem som uppstår i databasen.
Om tidpunkterna stämmer överens är det möjligt att problemen orsakades av triggern.
SQL Server tillhandahåller information om körningen av alla triggers som för närvarande finns lagrade i minnet via vyn sys.dm_exec_trigger_stats. Men när en trigger tas bort från minnet försvinner även all information om den från vyn, vilket innebär att du förlorar triggerns körningshistorik.
För att komma runt den här begränsningen väljer du att använda tabellen TriggerAudit för att lagra information om alla försök att ändra rader i tabellen Orders, eftersom användare har rapporterat att tabellen ofta slutar svara.
Den här övningen är en del av kursen
Bygga och optimera triggers i SQL Server
Övningsinstruktioner
- Ändra triggern
PreventOrdersUpdate. - Ange att triggern ska aktiveras när rader uppdateras i tabellen
Orders. - Lägg till ytterligare information om triggerkörningen i tabellen
TriggerAudit.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- 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);