存储过程执行有误,请进来看具体情况
时间:2011-12-01
来源:互联网
SQL code
我执行以上的存储过程
SQL code
一切数据正常,但是这一段老返回的受影响行数老是为0,请高手们帮我看看问题出在哪里吧
/************************购物车生成订单并支付[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,请高手们帮我看看问题出在哪里吧
作者: wsion 发布时间: 2011-12-01
如果单独执行
SQL code
这句,又可以返回正常的受影响行数
SQL code
insert into "Order" (UserName,TmpID,PayTime) (select UserName,TmpID,getdate() from Cart where UserName='abcabc');
这句,又可以返回正常的受影响行数
作者: wsion 发布时间: 2011-12-01
问题已经解决,是逻辑上的错误
作者: wsion 发布时间: 2011-12-01
引用 2 楼 wsion 的回复:
问题已经解决,是逻辑上的错误
问题已经解决,是逻辑上的错误
那我JF好了
作者: fredrickhu 发布时间: 2011-12-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28