# "ShoppingCartAddItem" 存储过程

说明：

这个存储过程根据一给定的CartID 向ShoppingCart中添加一条产品记录。如果当前的车内没有所要添加的产品，它将在ShoppingCart中增加新的条目。如果当前的车内已经有所要添加的产品，那么它会把产品的数量添加到当前的数据库中去。

定义：

    	CREATE Procedure CMRC_ShoppingCartAddItem
    	(
    		@CartID nvarchar(50),
    		@ProductID int,
    		@Quantity int
    	)
    	As

    	DECLARE @CountItems int

    	SELECT
    		@CountItems = Count(ProductID)
    	FROM
    		CMRC_ShoppingCart
    	WHERE
    		ProductID = @ProductID
    	AND
    		CartID = @CartID

    	IF @CountItems > 0  /* There are items - update the current quantity */

    		UPDATE
    			CMRC_ShoppingCart
    		SET
    			Quantity = (@Quantity + CMRC_ShoppingCart.Quantity)
    		WHERE
    			ProductID = @ProductID
    		AND
    			CartID = @CartID

    	ELSE  /* New entry for this Cart.  Add a new record */

    		INSERT INTO CMRC_ShoppingCart
    		(
    			CartID,
    			Quantity,
    			ProductID
    		)
    		VALUES
    		(
    			@CartID,
    			@Quantity,
    			@ProductID
    		)

使用的数据库表：

ShoppingCart: ShoppingCart表用来记录用户已经购买的项目。ShoppingCart表的主键是RecordID。CartID是用来识别用户当前登陆身份的字符串。ShoppingCart表和Products表之间是一个多对一的关系。需要说明的是，如果Quantity为空的话，系统将会把其值设为默认值“1”。