Audit delle tabelle con i trigger
L'azienda ha deciso di tracciare le modifiche apportate a tutte le tabelle più importanti. Una di queste tabelle è Orders.
Qualsiasi modifica ai contenuti di Orders deve essere inserita in TablesAudit.
Questo esercizio fa parte del corso
Creare e ottimizzare i trigger in SQL Server
Istruzioni dell'esercizio
- Crea un nuovo trigger
AFTERsulla tabellaOrders. - Imposta il trigger per essere eseguito su istruzioni
INSERT,UPDATEeDELETE.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- 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;