Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een nieuwe AFTER trigger op de tabel Orders.
  • Stel de trigger zo in dat hij afgaat bij INSERT-, UPDATE- en DELETE-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;
Code bewerken en uitvoeren