AFTER tetikleyiciler (DML)

SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Florin Angelescu

Instructor

Tanım ve özellikler

  • Tetiklendiğinde bir dizi işlem yürütür
  • İşlemler, DML olayı tamamlandıktan sonra yapılır
  • Tablolar veya görünümler için INSERT, UPDATE, DELETE ile kullanılır
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

AFTER tetikleyici önkoşulları

  • DML ifadeleri için tablo veya görünüm gerekir
  • Tetikleyici aynı tabloya bağlanır

Bu örnekte kullanılan Products tablosu çıktısı:

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      |
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

AFTER tetikleyici önkoşulları

  • Hedef tablo
  • Tetikleyici açıklaması
  • Tetiklenme olayı (DML)
  • Tetikleyici adı
  • Products
  • Silinen ürün bilgilerini bir geçmiş tablosuna kaydet
  • DELETE
  • TrackRetiredProducts
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

AFTER tetikleyici önkoşulları özeti

Products tablosundan satırlar silindiğinde...

Bu satırlardaki gerekli bilgiyi RetiredProducts tablosuna kaydedin.

| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple   | 2.00  | USD      | 25000    | kg      |
| Apricot | 1.55  | USD      | 2500     | kg      | X
| Avocado | 3.00  | USD      | 1000     | kg      |
| Banana  | 1.80  | USD      | 35000    | kg      |
| Product | Measure | RemovalDate |
|---------|---------|-------------|
| Apricot | kg      | 19.04.2019  |
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

AFTER tetikleyici tanımı

CREATE TRIGGER TrackRetiredProducts

ON Products
AFTER DELETE
AS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

"inserted" ve "deleted" tabloları

  • DML tetikleyicilerinin kullandığı özel tablolar
  • SQL Server tarafından otomatik oluşturulur
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

"inserted" ve "deleted" tabloları

  • DML tetikleyicilerinin kullandığı özel tablolar
  • SQL Server tarafından otomatik oluşturulur
Özel tablo INSERT UPDATE DELETE
inserted yeni satırlar yeni satırlar YOK
deleted YOK güncellenen satırlar silinen satırlar
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Tam AFTER tetikleyicisi

CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
    INSERT INTO RetiredProducts (Product, Measure)
    SELECT Product, Measure
    FROM deleted;
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Hadi pratik yapalım!

SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Preparing Video For Download...