【发布时间】:2015-05-29 07:53:53
【问题描述】:
我有两个触发器,我想知道执行的工作的结果是否相同。
CREATE TRIGGER trg_test_upd ON test AFTER UPDATE
AS
RAISERROR('Error', 16, 1);
ROLLBACK;
GO
CREATE TRIGGER trg_test_upd ON test INSTEAD OF UPDATE
AS
RAISERROR('Error', 16, 1);
GO
第二个问题,如果你有INSTEAD OF,为什么还要使用ROLLBACK?
【问题讨论】:
-
当然,真正的问题应该是,如果您只是要使用触发器来防止更新工作吗?
-
例如,您想在更新时设置一些与您正在更新的值相关的条件。
-
如果是 条件 错误/回滚,则触发器不一样,因为如果条件为假,
INSTEAD OF触发器需要执行实际更改。但是,如果这是您要讨论的那种情况,那么您在问题中显示的触发因素并不具有代表性,那么我们如何知道这一点? -
那是我的错误。但我的目标是知道您是否可以在每种情况下都摆脱 ROLLBACK。