SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme
Florin Angelescu
Instructor
CREATE TRIGGER MyFirstAfterTrigger
ON Table1
-- Tetikleyen olaydan sonra
-- (UPDATE) çalışır
AFTER UPDATE
AS
{trigger_actions_section};
CREATE TRIGGER MyFirstInsteadOfTrigger
ON Table2
-- Tetikleyen olayın yerine
-- (UPDATE) çalışır
INSTEAD OF UPDATE
AS
{trigger_actions_section};
AFTER tetikleyici
İlk olay tetikleyiciyi başlatır
İlk olay yürütülür
Tetikleyici eylemleri yürütülür

INSTEAD OF tetikleyici
İlk olay tetikleyiciyi başlatır
İlk olay artık yürütülmez
Tetikleyici eylemleri yürütülür

CREATE TRIGGER SalesNewInfoTrigger ON Sales AFTER INSERT ASEXEC sp_cleansing @Table = 'Sales';EXEC sp_generateSalesReport;EXEC sp_sendnotification;
| Marka | Model | Güç | Stok |
|-------|----------|-----|------|
| Ecco | Standard | 30W | 30 |
| Miry | Buma | 45W | 0 |
| Lume | Ultra | 50W | 0 |
CREATE TRIGGER BulbsStockTrigger
ON Bulbs
INSTEAD OF INSERT
AS
| Marka | Model | Güç | Stok |
|-------|----------|-----|------|
| Ecco | Standard | 30W | 30 |
| Miry | Buma | 50W | 100 |
| Lume | Ultra | 52W | 100 |
CREATE TRIGGER BulbsStockTrigger ON Bulbs INSTEAD OF INSERT ASIF EXISTS (SELECT * FROM Bulbs AS b INNER JOIN inserted AS i ON b.Brand = i.Brand AND b.Model = i.Model WHERE b.Stock = 0) BEGIN UPDATE b SET b.Power = i.Power, b.Stock = i.Stock FROM Bulbs AS b INNER JOIN inserted AS i ON b.Brand = i.Brand AND b.Model = i.Model WHERE b.Stock = 0 END
| Marka | Model | Güç | Stok |
|-------|----------|-----|------|
| Ecco | Standard | 30W | 30 |
| Miry | Buma | 50W | 100 |
| Lume | Ultra | 52W | 100 |
| Ecco | Standard | 35W | 100 |
-- Alan kısıtı nedeniyle ilk bölüm kısaltıldı
IF EXISTS (SELECT * FROM Bulbs AS b
INNER JOIN inserted AS i
ON b.Brand = i.Brand
AND b.Model = i.Model
WHERE b.Stock = 0)
BEGIN
UPDATE b
SET b.Power = i.Power,
b.Stock = i.Stock
FROM Bulbs AS b
INNER JOIN inserted AS i
ON b.Brand = i.Brand
AND b.Model = i.Model
WHERE b.Stock = 0
END
ELSE
INSERT INTO Bulbs
SELECT * FROM inserted;
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme