My problem is this:
Create a trigger named Products_UPDATE that checks the new value for the DiscountPercent column of the Products table. This trigger should raise an appropriate error if the discount percent is greater than 100 or less than 0.
If the new discount percent is between 0 and 1, this trigger should modify the new discount percent by multiplying it by 100. That way, a discount percent of .2 becomes 20.
Test this trigger with an appropriate UPDATE statement.
CREATE TRIGGER Products_UPDATE
ON Products
AFTER INSERT, UPDATE
AS
BEGIN
IF (SELECT Products.DiscountPercent FROM Products
JOIN inserted ON Products.DiscountPercent = inserted.DiscountPercent) > 100 OR (SELECT Products.DiscountPercent FROM Products
JOIN inserted ON Products.DiscountPercent = inserted.DiscountPercent) < 0
RAISERROR(N'Percent has to be between 0 and 100',16,1)
END
BEGIN
IF
(SELECT Products.DiscountPercent FROM Products
JOIN inserted ON Products.DiscountPercent = inserted.DiscountPercent) > 0 AND (SELECT Products.DiscountPercent FROM Products
JOIN inserted ON Products.DiscountPercent = inserted.DiscountPercent) < 1
UPDATE Products
SET DiscountPercent = DiscountPercent * 100
WHERE DiscountPercent = (SELECT Products.DiscountPercent FROM Products
JOIN inserted ON Products.DiscountPercent = inserted.DiscountPercent)
END
GO
UPDATE Products
SET DiscountPercent = 103
WHERE ProductID = 1;
So it isn't throwing an error when I update the DiscountPercent greater than 100.