Check business logic in a trigger : Trigger « Trigger « SQL Server / T-SQL Tutorial






2>
3> CREATE TABLE Products (
4>      ProductID int IDENTITY (1, 1) NOT NULL ,
5>      ProductName nvarchar (40) NOT NULL ,
6>      SupplierID int NULL ,
7>      CategoryID int NULL ,
8>      QuantityPerUnit nvarchar (20) NULL ,
9>      UnitPrice money NULL,
10>     UnitsInStock smallint NULL,
11>     UnitsOnOrder smallint NULL,
12>     ReorderLevel smallint NULL,
13>     Discontinued bit NOT NULL
14> )
15> GO
1>    CREATE TRIGGER ProductIsRationed
2>       ON Products
3>       FOR UPDATE
4>    AS
5>       IF EXISTS
6>          (
7>           SELECT 'True'
8>           FROM Inserted i
9>           JOIN Deleted d
10>              ON i.ProductID = d.ProductID
11>           WHERE (d.UnitsInStock - i.UnitsInStock) > d.UnitsInStock / 2
12>              AND d.UnitsInStock - i.UnitsInStock > 0
13>          )
14>       BEGIN
15>          RAISERROR('Cannot reduce stock by more than 50%% at once.',16,1)
16>          ROLLBACK TRAN
17>       END
18>       GO
1>
2> drop TRIGGER ProductIsRationed;
3> GO
1>
2> drop table Products;
3> GO
1>








22.1.Trigger
22.1.1.The syntax of the CREATE TRIGGER statement
22.1.2.exits if the price column has not been updated.
22.1.3.Define variables in a trigger
22.1.4.Update table in a trigger
22.1.5.Check @@ROWCOUNT in a trigger
22.1.6.Rollback transaction in a trigger
22.1.7.RAISERROR in trigger
22.1.8.Disable a trigger
22.1.9.Enable a trigger
22.1.10.Check business logic in a trigger
22.1.11.Check record matching in a trigger
22.1.12.Table for INSTEAD OF Trigger for Logical Deletes
22.1.13.INSTEAD OF INSERT trigger for a table
22.1.14.Trigger Scripts for Cascading DELETEs