C#购物车添加存储过程》》》》........./

购物车

alter proc Buy(@ProductNo char(14),@SkuId int,@account nvarchar(20),@buyNumber int)
as
begin
–使用事务
begin tran
declare @error int
declare @orderNo char(14)
declare @amount float
select @orderNo=OrderNo from [order] where OrderAccount=@account
–查询编号
if(@orderNo is null or @orderNo=’’)
begin
set @orderNo=CONVERT(varchar(100), GETDATE(), 112)+‘0001’
end
—先插入到order_detail表
insert order_detail
select @orderNo,@SkuId,@ProductNo,DetailPrice,@buyNumber,a.ProductName from Product a inner join ProductDetail b on a.ProductNo=b.ProdcutNo
set @error+=@@ERROR
if(@error>0)
begin
rollback
end

–往订单表(购物车)
select @amount=(Number*Price) from [order] a inner join order_detail b on a.orderNO=B.ORDERNO where A.orderaccount=@account

insert [order]
select @orderNo,@account,getdate(),‘待付款’,@amount from ProductDetail
set @error+=@@ERROR
if(@error>0)
begin
rollback
end

—库存扣减
declare @sku int
select @sku=DetailSku from ProductDetail where ProdcutNo=@ProductNo
if(@sku-@buyNumber<0)
begin
rollback
end
else
begin
update ProductDetail set DetailSku=DetailSku-@buyNumber where ProdcutNo=@ProductNo
end

commit

end
select *from Product
exec Buy '202005260001 ',1,‘zhangshan’,10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值