我现在正在参与新项目,并且在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
我已经用不同的情况检查了此触发器,并且如果将@@ error!= 0 处理为,则无法理解。
如果INSERT中存在一些错误,则触发器会因错误而失败并回滚。并且触发器执行将在引发错误的语句上中止
如果在触发器中使用@@ error!= 0 以及何时可以触发,有人可以解释我的目的吗?
最佳答案
我已用于测试Sybase Central v.6.0
如果发生错误,它不会显示任何PRINT结果
当我使用QTODBC工具连接到Sybase ASE服务器时,它引发了异常并打印了“ERROR !!!”。信息
因此,这是Sybase Central环境的功能
实际上,触发器会在发生任何错误时恢复工作
关于error-handling - @@ ERROR <> 0在触发器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42118010/