首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于存储过程返回值及内嵌事务的有关问题,盼解答

2013-03-17 
关于存储过程返回值及内嵌事务的问题,急,盼解答本帖最后由 pangdecai 于 2013-03-14 20:50:49 编辑如题,遇

关于存储过程返回值及内嵌事务的问题,急,盼解答
本帖最后由 pangdecai 于 2013-03-14 20:50:49 编辑 如题,遇到一个类似于以下存储过程的问题
ALTER PROC [AA]
    @A    INT
BEGIN
    BEGIN TRANSACTION;
    IF @A > 0
    BEGIN
        COMMIT TRANSACTION;
        RETURN 0;
    END
    ELSE
    BEGIN
        ROLLBACK TRANSACTION;
        RETURN 1;
    END
END
执行存储过程的时候,如果参数为正,那么提交事务,返回值为0,这个没问题,但是如果参数不为正,那么肯定是要回滚事务的,如果回滚事务就无法取得返回值了,如果在ROLLBACK TRANSACTION;之前返回那么就会积压事务,如果先ROLLBACK TRANSACTION,那就无法取得返回值,请问这个问题怎么解决? 存储过程 事务 返回值
[解决办法]
事务是基于对数据库的操作的记录,你的返回值还有变量一类的存亡对数据库数据及结构没有影响,事务日志是不会记录他们的操作的,所以你提交跟回滚对返回值没有影响
[解决办法]
在存储过程中,ROLLBACK TRANSACTION 语句不影响调用该过程的批处理中的后续语句;将执行批处理中的后续语句。

热点排行