Sybase中默认每个DML语句是一个事务,因此,正确地处理事务和错误就很重要了。
EXEC sp_procxmode 'spname', 'unchained' 让存储过程不在事务链模式中。
EXEC sp_procxmode 'spname', 'unchained' 让存储过程不在事务链模式中。
create procedure procTransationTest
(
@param1 int,
@param2 char(20)
)
as
declare @error int
declare @rowcount int
begin transaction
insert table1 (col1, col2) values (@param1, @param2)
select @error = @@error, @rowcount = @@rowcount
if (@error != 0)
begin
Rollback transaction
raiserror 99999 "error inserting to table1"
return 2 --2代表错误
end
if (@rowcount !> 0)
begin
Rollback transaction
raiserror 99999 "No row affected"
return 1 --1代表警告
end
commit transaction
本文介绍在Sybase数据库中如何通过存储过程实现事务处理,并提供了一个具体的示例代码,展示了插入操作及错误处理的方法。
519

被折叠的 条评论
为什么被折叠?



