当前位置: 代码迷 >> Sybase >> Sybase中编纂带事务处理的存储过程
  详细解决方案

Sybase中编纂带事务处理的存储过程

热度:9768   发布时间:2013-02-26 00:00:00.0
Sybase中编写带事务处理的存储过程
Sybase中默认每个DML语句是一个事务,因此,正确地处理事务和错误就很重要了。
EXEC sp_procxmode 'spname', 'unchained' 让存储过程不在事务链模式中。
create procedure procTransationTest(@param1 int, @param2 char(20))asdeclare @error intdeclare @rowcount intbegin 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代表警告	endcommit transaction