Creare e ottimizzare i trigger in SQL Server
Florin Angelescu
Instructor
CREATE TRIGGER PreventProductChanges
ON Products
INSTEAD OF UPDATE
AS
RAISERROR ('Gli aggiornamenti dei prodotti non sono consentiti.
Contatta l’amministratore del database se serve una modifica.', 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 ('Le voci cliente non possono essere rimosse.', 16, 1);
EXECUTE SendNotification @RecipientEmail = '[email protected]'
,@EmailSubject = 'Comportamento sospetto del database'
,@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 ('Non puoi inserire ordini senza stock disponibile.', 16, 1);
ELSE
INSERT INTO dbo.Orders (Customer, Product, Quantity, OrderDate, TotalAmount)
SELECT Customer, Product, Quantity, OrderDate, TotalAmount FROM inserted;

Creare e ottimizzare i trigger in SQL Server