Tetikleyicilerle tablo denetimi
Şirket, en önemli tabloların tümünde yapılan değişiklikleri takip etmeye karar verdi. Bu tablolardan biri de Orders.
Orders içeriğinde yapılan her değişiklik TablesAudit tablosuna eklenmelidir.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme
Egzersiz talimatları
Orderstablosu üzerinde yeni birAFTERtetikleyicisi oluştur.- Tetikleyiciyi
INSERT,UPDATEveDELETEifadeleri için çalışacak şekilde ayarla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- 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;