问题描述
||
我正在sql Server 2005中创建一个数据库来存储已接订单。
表[customers]:客户详细信息表的主键是customer_ID,这将是一个自动递增的身份
table [orders]:包含3列,[orderid](也是pk),[product_id],[quantity]
table [linking]:包含2列,[customerid](作为外键),[orderid](也包括外键)
订购流程:
当客户签出时,客户的详细信息将存储到表[customers]中,其中将生成唯一的customer_ID。
接下来,使用该customer_ID,购物车中的产品将存储到table [orders]中。
现在,问题是:如何从表[customers]中检索自动生成的customer_ID?假设有很多用户正在同时结帐?在将客户的详细信息插入表[customer]后,我必须使用表[linking]中的customer_ID与订单ID配对。
解决方法
编写一些SQL存储过程来为您完成这项工作。您可以使用ADO.NET从Web应用程序的代码中调用它。
调用过程
CreateCustomer
。它创建您的客户ID。
调用过程CreateOrderForCust
。
CREATE PROC CreateCustomer
@Name varchar(100),@Address varchar(100)
AS
DECLARE @CustomerID int;
INSERT INTO CUSTOMER([Name],[Addr]) VALUES (@Name,@Addr);
SELECT @CustomerID = SCOPE_IDENTITY();
RETURN @CustomerID;
...
CREATE PROC CreateOrderForCust
@CustomerID int,@SKU int,@Qty int
AS
.....