我在TSQL中有触发器,我想做两件事:
这样做会优雅地失败
AFTER UPDATE
AS
BEGIN
IF (SELECT COUNT(*) FROM deleted WHERE Locked = 1)>0
ROLLBACK TRANSACTION
END
目前,代码会回滚不需要的事务,但是当它执行时会返回此错误:“事务在触发器中结束。批处理已中止。”
是否有办法在触发器中进行ROLLBACK TRANSACTION并正常失败?
感谢。
答案 0 :(得分:0)
我猜您可以更改为INSTEAD OF触发器,并选择执行或不执行更新,但需要更多代码,因为您必须手动执行更新。