购物车转换,遇到这样的一个存储过程,请问怎样解决呢,困扰多天了,请高手们多多帮忙
现在要达到的目的是要把未登录用户购买的物品的cartname转成已登录用户的cartname
首先要判断这些物品是否已经存在已登录用户的购物车里,如果存在则把购物车内已登录用户的相关物品的quantity加上未登录用户的相关物品的quantity,如果不存在,则把未登录用户的cartname转成为已登录用户的cartname
但我现在碰到的问题是,判断@pid是否等于@pid2,并不是一个个数字来判断,而是一起判断
就是说,比如有@pid=1,@pid=2,@pid=3 @pid2=2,@pid2=3,@pid2=4
@pid和@pis2有2,3这两个数相同,但是以下的程序的结果并不是一个个判断,而是1 2 3 和2 3 4一起判断,从而不可能达到一个个判断的效果,我现在要问的问题是如何让他们一个个进行判断,而不是一起判断,这个问题困扰我很多天了,我一直找不到解决之道,还请各位朋友们多多帮忙
create proc shoppingcartmigrate---未登录用户和登录用户之间购物车号的转换
(@oldcartname nvarchar(50),@newcartname nvarchar(50))
as
declare @pid int
declare @pid2 int
declare @quantity int
select @pid=pid from shoppingcart where cartname=@newcartname
select @pid2=pid,@quantity=quantity from shoppingcart where cartname=@oldcartname
if @pid=@pid2
begin
update shoppingcart set quantity=quantity+@quantity where cartname=@newcartname and
@pid=@pid2
end
else
begin
update shoppingcart set cartname=@newcartname where cartname=@oldcartname and @pid!=@pid2
end
GO