Triggers in SQL Server bouwen en optimaliseren
Florin Angelescu
Instructor
CREATE TRIGGER PreventProductChanges
ON Products
INSTEAD OF UPDATE
AS
RAISERROR ('Updates van producten zijn niet toegestaan.
Neem contact op met de databasebeheerder als een wijziging nodig is.', 16, 1);
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 ('Klantrecords mogen niet worden verwijderd.', 16, 1);
EXECUTE SendNotification @RecipientEmail = '[email protected]'
,@EmailSubject = 'Verdacht databasegedrag'
,@EmailBody = @EmailBodyText;
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 ('Je kunt geen orders plaatsen zonder voorraad.', 16, 1);
ELSE
INSERT INTO dbo.Orders (Customer, Product, Quantity, OrderDate, TotalAmount)
SELECT Customer, Product, Quantity, OrderDate, TotalAmount FROM inserted;

Triggers in SQL Server bouwen en optimaliseren