-- 添加订单项目(假设订购两种商品) INSERTINTO 订单项目 (订单ID, 产品ID, 数量, 单价) SELECT @OrderID, 产品ID, 1, 价格 FROM 商品 WHERE 产品IDIN (101, 102);
-- 更新订单总价 UPDATE 订单 SET 总价 = (SELECTSUM(数量 * 单价) FROM 订单项目 WHERE 订单ID = @OrderID) WHERE 订单ID = @OrderID;
SET @TotalAmount = (SELECT 总价 FROM 订单 WHERE 订单ID = @OrderID);
-- 检查并更新库存 IF EXISTS ( SELECT1 FROM 商品 p JOIN 订单项目 oi ON p.产品ID = oi.产品ID WHERE oi.订单ID = @OrderID AND p.库存 < oi.数量 ) BEGIN ROLLBACK; RAISERROR('库存不足', 16, 1); RETURN; END
UPDATE 商品 SET 库存 = 库存 - oi.数量 FROM 商品 p JOIN 订单项目 oi ON p.产品ID = oi.产品ID WHERE oi.订单ID = @OrderID;
-- 检查并更新用户余额 IF (SELECT 余额 FROM 用户 WHERE 用户ID = @UserID) < @TotalAmount BEGIN ROLLBACK; RAISERROR('用户余额不足', 16, 1); RETURN; END
UPDATE 用户 SET 余额 = 余额 - @TotalAmount WHERE 用户ID = @UserID;
-- 更新订单状态 UPDATE 订单 SET 状态 = '已完成' WHERE 订单ID = @OrderID;