有没有办法处理 中的错误SYBASE
,例如TRY-CATCH
可以在 、 等中使用MS SQL Server
的块Oracle
?
我在网上搜索过,我发现的唯一选项是 global variable @@error
,但它没有按我的预期工作,例如,以下代码:
begin tran
update table1
set name = 'new name'
where name = 'old name'
update table2
set id = 1
where id = 30
-- suppose id has a unique constraint and there's already a row with id = 1
IF @@error = 0
begin
print 'commited'
commit
end
else
begin
print 'rolled back'
rollback
end
确实会以某种方式回滚,因为我在 table1 上更改的名称保留了我在这里测试过的旧值,但它不会打印消息,也不会执行我在导致错误的指令之后放置的任何指令
任何人都可以帮助我吗?您知道 Sybase 错误处理实际上是如何工作的吗?