做购物车系统时利用到得几个sqlserver 存储过程

即以游客身份登录网站时以cookie的方式存储购物车,而以登录用户的身份进入时将购物车信息存储到数据库中去,若是先以游客身份完成购物再登录继续购物,则将cookies购物车存入数据库;
其中涉及到的存储过程主要如下:
一:已登录会员添加商品到购物车功能:

代码如下:

/* @store_sum表示要添加的商品数量,添加同时确认购物车中自己已有的数量与将要加入的数量之和是否超过库存 */ 
CREATE proc ncp_Cart_Add 
( 
@store_id int, 
@store_sum int=1, 
@member_id int 
) 
as 

DECLARE @Amount int 
DECLARE @NowAmount int 
Begin 
select @Amount=(select amount from ncp_store where id=@store_id) 
IF EXISTS(SELECT 1 FROM [ncp_cart] WHERE store_id=@store_id and member_id=@member_id) 
Begin 
select @NowAmount=(select store_sum+@store_sum from ncp_cart WHERE store_id=@store_id and member_id=@member_id) 
if @NowAmount>@Amount 
return 0 
else 
UPDATE [ncp_cart] SET store_sum=store_sum+@store_sum,addtime=getDate() where store_id=@store_id and member_id=@member_id 
return 1 
End 
ELSE 
Begin 
select @NowAmount=(select store_sum from ncp_cart WHERE store_id=@store_id and member_id=@member_id) 
if @NowAmount>@Amount 
return 0 
else 
INSERT INTO [ncp_cart](store_id,store_sum,member_id) values(@store_id,@store_sum,@member_id) 
return 1 
END 
End 
GO

二:购物车的删除功能

代码如下:

/* type 为1是全部删 0时只删一个 */ 
CREATE PROCEDURE ncp_Cart_Del 
@type int=0, 
@store_id int , 
@member_id int 
AS 
begin 
if @type=0 
delete from [ncp_cart] where store_id=@store_id and member_id=@member_id 
else 
delete from [ncp_cart] where member_id=@member_id 
End 
GO

相关推荐