Tabelauditing met triggers
Het bedrijf heeft besloten wijzigingen bij te houden die in de belangrijkste tabellen worden aangebracht. Een van die tabellen is Orders.
Elke wijziging in de inhoud van Orders moet worden weggeschreven naar TablesAudit.
Deze oefening maakt deel uit van de cursus
Triggers in SQL Server bouwen en optimaliseren
Oefeninstructies
- Maak een nieuwe
AFTERtrigger op de tabelOrders. - Stel de trigger zo in dat hij afgaat bij
INSERT-,UPDATE- enDELETE-instructies.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- Add a trigger that tracks table changes
___ ___ OrdersAudit
ON Orders
___ INSERT, ___, ___
AS
DECLARE @Insert BIT = 0;
DECLARE @Delete BIT = 0;
IF EXISTS (SELECT * FROM inserted) SET @Insert = 1;
IF EXISTS (SELECT * FROM deleted) SET @Delete = 1;
INSERT INTO ___ (TableName, EventType, UserAccount, EventDate)
SELECT 'Orders' AS TableName
,CASE WHEN @Insert = 1 AND @Delete = 0 THEN 'INSERT'
WHEN @Insert = 1 AND @Delete = 1 THEN 'UPDATE'
WHEN @Insert = 0 AND @Delete = 1 THEN 'DELETE'
END AS Event
,ORIGINAL_LOGIN() AS UserAccount
,GETDATE() AS EventDate;