@@ERROR <> 触发器中的 0

@@ERROR <> 0 in trigger

我现在正在参与新项目,我在 Sybase ASE 触发器中遇到以下逻辑:

CREATE TRIGGER TR_TEST2
   ON TBL_TEMP2
FOR INSERT
 AS  
 insert into TBL_TEMP select * from inserted
if @@error != 0
begin
print 'ERROR!!!'
rollback trigger
end

我已经用不同的案例检查了这个触发器,但我不明白什么时候 if @@error != 0 会被处理。 如果 INSERT 中有一些错误,触发器将因错误而失败并回滚。触发器执行将在引发错误的语句上中止 有人可以解释一下 if @@error != 0 用于触发器的目的是什么以及何时可以触发吗?

我曾用于测试 Sybase Central v.6.0 如果发生错误,它不会显示任何 PRINT 结果 当我使用 QTODBC 工具连接到 Sybase ASE 服务器时,它抛出异常并打印 'ERROR!!!' message

所以,这就是Sybase Central环境的特点 实际上,触发器在发生任何错误时恢复工作