如果我在Sql Server 2005中的AFTER UPDATE触发器中引发错误,是否会导致导致触发器触发的更新回滚,即使该语句未在事务中执行?
感谢。
答案 0 :(得分:4)
不,您必须通过调用ROLLBACK TRAN
来回滚交易:
CREATE TRIGGER trg_au_table
ON dbo.table
AFTER UPDATE
AS
BEGIN
ROLLBACK TRAN
END
GO
此示例将阻止更新任何记录。
这:
CREATE TRIGGER trg_au_table
ON dbo.table
AFTER UPDATE
AS
BEGIN
RAISERROR('This is a test', 16, 1)
END
GO
只会引发错误,但会在表格中进行更改。