我正在处理一个触发器,如果新值低于或等于旧值,则会引发错误。
这是我的number_table
,其中包含两列:
Handle (int) | IK (numeric(18,0)
现在IK内容可能会发生变化,但只会向上变化,所以我想创建触发器以引发错误,如果新值等于或低于旧值。
这是我到目前为止所获得的触发器,但它似乎根本不起作用,因为它不会引发错误:
CREATE TRIGGER TR_IK ON number_table
FOR UPDATE
AS BEGIN
SELECT *
FROM inserted i
JOIN deleted d ON i.Handle = d.Handle
WHERE i.IK < d.IK
RAISERROR ('The new IK is either lower than or equals the old IK', 11, 1) with log
END
如果新的IK值低于或等于旧的IK值,它应该只会引发错误,是否有人知道我做错了什么?
提前致谢!
答案 0 :(得分:2)
试试这个
CREATE TRIGGER TR_IK ON number_table
FOR UPDATE
AS BEGIN
IF EXISTS (
SELECT *
FROM inserted i join deleted d ON i.Handle = d.Handle
WHERE i.IK <= d.IK
)
RAISERROR ('The new IK is either lower than or equals the old IK', 11, 1) with log
END