在触发器Sql Server 2005中引发错误

时间:2009-11-06 16:50:07

标签: sql sql-server-2005

如果我在Sql Server 2005中的AFTER UPDATE触发器中引发错误,是否会导致导致触发器触发的更新回滚,即使该语句未在事务中执行?

感谢。

1 个答案:

答案 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

只会引发错误,但会在表格中进行更改。