在不应该触发的时候触发

Out*_*all 3 sql-server-2012

我有以下触发器:

CREATE TRIGGER SalaryCannotDecrease ON Employees
AFTER UPDATE
AS
IF EXISTS (
            SELECT *
            FROM inserted, deleted
            WHERE inserted.Salary < deleted.Salary
            )
BEGIN
    RAISERROR 30002 'You cannot decrease salary';
    ROLLBACK TRANSACTION;
    RETURN
END;
Run Code Online (Sandbox Code Playgroud)

当我尝试执行以下操作时,此触发器正在触发:

UPDATE Employees
SET Salary = Salary * 1.05
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

AA.*_*.SC 5

加入Employees表的唯一ID与插入扳机。

--- Employees table 
CREATE TABLE Employees
( EmpID INT,  --- unique id for employee
  Salary INT
)

--- Dummy data insertion
INSERT INTO Employees
SELECT 11001,5000
UNION ALL 
SELECT 10003,6500
UNION ALL 
SELECT 10004,6900
UNION
SELECT 10006,300


-- Salary Trigger 
CREATE TRIGGER SalaryCannotDecrease ON Employees
AFTER UPDATE
AS
IF EXISTS (
            SELECT *
            FROM inserted INNER JOIN deleted ON inserted.empid=deleted.empid
            WHERE inserted.Salary < deleted.Salary
            )
BEGIN
    RAISERROR 30002 'You cannot decrease salary';
    ROLLBACK TRANSACTION;
    RETURN
END;


-- Update Statement
UPDATE Employees
SET Salary = Salary * 1.05
WHERE empid=10006


--- Verification 
SELECT * FROM Employees
Run Code Online (Sandbox Code Playgroud)