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

存储过程执行有误,请进来看具体情况解决思路

2012-02-17 
存储过程执行有误,请进来看具体情况SQL code/************************购物车生成订单并支付[gen_order_ca

存储过程执行有误,请进来看具体情况

SQL code
/************************购物车生成订单并支付[gen_order_cart]******************/alter procedure gen_order_cart@UserName    varchar(14)as    declare    @balance float,    --用户余额    @pay float,        --购物车总价    @flag1 int,        --操作成功标志    @flag2 int,    @flag3 int;        --获取账户余额    select @balance=Balance from Member where UserName=@UserName;    if @balance is null    begin        print '账户余额为空';        return;    end        --获取购物车总价    select @pay=sum(TmpPrice) from (select TmpPrice from Cart,TmpDetail         where Cart.TmpID=TmpDetail.TmpID and UserName=@UserName) as T;    if @pay is null    begin        print '购物车为空';        return;    end    --判断账户余额是否足以支付购物车中项目    if @balance<@pay    begin        print '余额不足以支付';        return;    end        --删除购物车项目并扣除账户余额,同时添加订单记录    set @flag1=1;    set @flag2=1;        set @flag3=1;    BEGIN TRANSACTION        --删除购物车项目        delete from Cart where UserName=@UserName;        print '用户['+@UserName+']购物车已经清空';            if @@rowcount=0            set @flag1=0;            --添加订单记录        insert into "Order" (UserName,TmpID,PayTime) (select UserName,TmpID,getdate() from Cart where UserName=@UserName);        print '用户['+@UserName+']购买记录已经添加';        if @@rowcount=0            set @flag2=0;        --扣除账户余额        update Member set Balance=(Balance-@pay) where UserName=@UserName;        print '用户['+@UserName+']余额已经扣除';        if @@rowcount=0            set @flag3=0;        --处理操作结果标识        if @flag1=0 or @flag2=0 or @flag3=0            ROLLBACK TRANSACTION;        else            COMMIT TRANSACTION;go


我执行以上的存储过程
SQL code
--添加订单记录        insert into "Order" (UserName,TmpID,PayTime) (select UserName,TmpID,getdate() from Cart where UserName=@UserName);        print '用户['+@UserName+']购买记录已经添加';        if @@rowcount=0            set @flag2=0;

一切数据正常,但是这一段老返回的受影响行数老是为0,请高手们帮我看看问题出在哪里吧

[解决办法]
探讨
问题已经解决,是逻辑上的错误

[解决办法]
SQL code
delete from Cart where UserName=@UserName;        print '用户['+@UserName+']购物车已经清空';            if @@rowcount=0            set @flag1=0;
[解决办法]
JF!

热点排行