TSQL:触发/ ROLLBACK TRANSACTION错误

时间:2012-03-05 23:23:46

标签: sql sql-server tsql triggers

我在TSQL中有触发器,我想做两件事:

  1. 如果“已锁定”列为TRUE,则应为ROLLBACK TRANSACTION
  2. 这样做会优雅地失败

    AFTER UPDATE 
    AS
    BEGIN
     IF (SELECT COUNT(*) FROM deleted WHERE Locked = 1)>0
     ROLLBACK TRANSACTION
    END
    
  3. 目前,代码会回滚不需要的事务,但是当它执行时会返回此错误:“事务在触发器中结束。批处理已中止。”

    是否有办法在触发器中进行ROLLBACK TRANSACTION并正常失败?

    感谢。

1 个答案:

答案 0 :(得分:0)

我猜您可以更改为INSTEAD OF触发器,并选择执行或不执行更新,但需要更多代码,因为您必须手动执行更新。