我在SQL Server中有一个触发器,当条件发生时,我需要ROLLBACK
它。问题是我需要设置自定义消息。
-- This is inside an UPDATE TRIGGER --
if (condition)
BEGIN
ROLLBACK
RAISERROR 50100 'custom message'
END
但它引发了2个错误
Msg 50100,Level 16,State 1,Procedure tU_COM_Proposta,Line 42
自定义消息
消息3609,级别16,状态1,行1 交易在触发器中结束。批次已中止。
如何让它只引发我的自定义错误,同时我需要回滚触发器的事务?
答案 0 :(得分:0)
你好像这样写
RAISERROR ('custom message', 16, 1 )
答案 1 :(得分:0)
我不知道这是否可以解决您的问题,但我在ROLLBACK TRANSACTION
触发器中的RAISERROR()
语句之后(而不是之前)使用INSERT
,这导致插入为中止。当我在触发器的ERROR_MESSAGE()
语句中将严重性级别从1更改为16时,触发器中创建的自定义消息开始出现在触发器外的RAISERROR()
中。