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
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- 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);