BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Egzersiz talimatları

  • PreventOrdersUpdate tetikleyicisini değiştir.
  • Orders tablosunda satırlar GÜNCELLENDİĞİNDE tetiklenecek şekilde ayarla.
  • Tetikleyici yürütmesine ait ek ayrıntıları TriggerAudit tablosuna 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);
Kodu Düzenle ve Çalıştır