Tetikleyici çalıştırmalarını takip etme
Tetikleyicileri izlerken önemli bir etken, çalıştırmalarının geçmişini tutmaktır. Bu sayede tetikleyici çalışmaları ile veritabanında oluşan sorunların zamanlarını ilişkilendirebilirsin.
Zamanlar örtüşüyorsa, sorunların tetikleyiciden kaynaklanmış olması mümkündür.
SQL Server, şu anda bellekte bulunan tetikleyicilerin çalıştırılmasına dair bilgileri sys.dm_exec_trigger_stats görünümünde sunar. Ancak bir tetikleyici bellekten çıkarıldığında, ona ait tüm bilgiler de bu görünümden silinir; dolayısıyla tetikleyici yürütme geçmişini kaybedersin.
Bu kısıtı aşmak için, Orders tablosundaki satırları değiştirme girişimlerine ait bilgileri saklamak üzere TriggerAudit tablosunu kullanmaya karar veriyorsun; çünkü bu tablonun sık sık yanıtsız kaldığı bildirildi.
Bu egzersiz, kursun bir parçasıdır
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme
Egzersiz talimatları
PreventOrdersUpdatetetikleyicisini değiştir.Orderstablosunda satırlar GÜNCELLENDİĞİNDE tetiklenecek şekilde ayarla.- Tetikleyici yürütmesine ait ek ayrıntıları
TriggerAudittablosuna ekle.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
-- 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);