INSTEAD OF tetikleyiciler için kullanım alanları (DML)

SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Florin Angelescu

Instructor

INSTEAD OF tetikleyicilerin genel kullanımı

  • İşlemleri engelleyin
  • Veritabanı ifadelerini denetleyin
  • Veri bütünlüğünü sağlayın
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Değişiklikleri engelleyen tetikleyiciler

CREATE TRIGGER PreventProductChanges
ON Products
INSTEAD OF UPDATE
AS
    RAISERROR ('Updates of products are not permitted.
                Contact the database administrator if a change is needed.', 16, 1);
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Engelleyen ve bildiren tetikleyiciler

CREATE TRIGGER PreventCustomersRemoval
ON Customers
INSTEAD OF DELETE
AS
    DECLARE @EmailBodyText NVARCHAR(50) =
                       (SELECT 'User "' + ORIGINAL_LOGIN() +
                        '" tried to remove a customer from the database.');

    RAISERROR ('Customer entries are not subject to removal.', 16, 1);

    EXECUTE SendNotification @RecipientEmail = '[email protected]'
                              ,@EmailSubject = 'Suspicious database behavior'
                              ,@EmailBody = @EmailBodyText;
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Koşullu mantığa sahip tetikleyiciler

CREATE TRIGGER ConfirmStock
ON Orders
INSTEAD OF INSERT
AS
    IF EXISTS (SELECT * FROM Products AS p
               INNER JOIN inserted AS i ON i.Product = p.Product
               WHERE p.Quantity < i.Quantity)
        RAISERROR ('You cannot place orders when there is no product stock.', 16, 1);
    ELSE
        INSERT INTO dbo.Orders (Customer, Product, Quantity, OrderDate, TotalAmount)
        SELECT Customer, Product, Quantity, OrderDate, TotalAmount FROM inserted;
SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Koşullu mantığa sahip tetikleyiciler

Tetikleyiciler için koşullu mantık

SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Haydi pratik yapalım!

SQL Server'da Tetikleyiciler Oluşturma ve Optimize Etme

Preparing Video For Download...