存储过程调用存储过程的事务控制
caijf 2005-10-10 01:56:24 大家都知道存储过程是事务嵌套的,可以进行统一提交或者回滚,但是如果在多用户的环境中,我有一个很常用的取最大值存储过程,该存储过程是对一张最大值表中,根据传入的参数,取其中某行记录的最大值,并进行+1保存。如果在多用户调用不同的存储过程处理业务(此时均有调用取最大值存储过程)时,此时发现会有将最大值表锁表现象,那这就造成处理延迟了。我希望能否做到,如果是多个存储过程调用时,如果是取最大值表中同一行记录的最大值,此时锁住该行记录,待事务提交后,其他存储过程再完成操作,但如果取的不是同一行记录的最大值,则互不影响,不要影响多用户执行的效率。
最好就是像oracl中的自治事务一样,不管外面的大事务是否完成提交或者回滚,取最大值存储过程都可以即时完成提交。