考虑这个触发器:
ALTER TRIGGER myTrigger
ON someTable
AFTER INSERT
AS BEGIN
DELETE FROM someTable
WHERE ISNUMERIC(someField) = 1
END
我有一个表 someTable,我试图阻止人们插入不良记录。就本问题而言,不良记录具有一个全为数字的字段“someField”。
当然,这样做的正确方法不是使用触发器,但我不控制源代码......只是 SQL 数据库。所以我不能真正阻止坏行的插入,但我可以马上删除它,这已经足够满足我的需要了。
触发器工作,有一个问题......当它触发时,它似乎永远不会删除刚刚插入的坏记录......它会删除任何旧的坏记录,但它不会删除刚刚插入的坏记录。所以经常有一个坏记录漂浮在周围,直到其他人出现并执行另一个 INSERT 时才会删除。
这是我对触发器的理解的问题吗?触发器运行时新插入的行是否尚未提交?