【发布时间】:2016-12-12 15:53:48
【问题描述】:
我目前正在开发一个触发器,如果新值小于或等于旧值,则该触发器会引发错误。
这是我的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 值,它只会引发错误,有人知道我做错了什么吗?
提前致谢!
【问题讨论】:
-
如果新值小于或等于旧值,是否要回滚?
标签: sql-server sql-server-2008 triggers