-- 创建订单相关基本信息表
-----------------------------------------------------------------
CREATE TABLE OrderInfo
(
Oid INT IDENTITY (1, 1) NOT NULL PRIMARY KEY, --订单编号
Onume INT NOT NULL, --实坐人数
Uid INT NOT NULL, --员工编号
)
-- 创建订单列表 OrderList
-- 消费者的详细订单情况
-----------------------------------------------------------------
--DROP TABLE OrderList
--GO
CREATE TABLE OrderList
(
Oid INT NOT NULL, --订单编号
Did INT NOT NULL, --桌编号
Mid INT NOT NULL, --物品编号
Mprice SMALLMONEY NOT NULL, --当时价格
)
这两个表的设计如上所示
现在向这两个表中插入数据,要求是一个订单上会有多个物品,即向表OrderInfo中插入一个订单(订单编号自动生成),同时OrderList表根据OrderInfo表刚插入的订单编号,向OrderList表中插入多行。显示如下:
插入OrderInfo表:
Oid Onume Uid
11 10 100
这条信息插入的同时,插入OrderList表:
Oid Did Mid Mprice
11 2 1002 25.5
11 2 1003 26
11 2 1004 45
......
请问存储过程该如何写?
我写的是
INSERT INTO OrderInfo( Onume,Uid )
VALUES( @Onume,@Uid ) DECLARE @Oid INT
DECLARE @Did1 INT
SELECT @Oid = @@IDENTITY FROM OrderInfo
INSERT INTO OrderList( Oid,Did,Mid,Mprice )
VALUES ( @Oid,@Did,@Mid,@Mprice )
但我觉得不对,非常不对,请高手指点,谢谢了
-----------------------------------------------------------------
CREATE TABLE OrderInfo
(
Oid INT IDENTITY (1, 1) NOT NULL PRIMARY KEY, --订单编号
Onume INT NOT NULL, --实坐人数
Uid INT NOT NULL, --员工编号
)
-- 创建订单列表 OrderList
-- 消费者的详细订单情况
-----------------------------------------------------------------
--DROP TABLE OrderList
--GO
CREATE TABLE OrderList
(
Oid INT NOT NULL, --订单编号
Did INT NOT NULL, --桌编号
Mid INT NOT NULL, --物品编号
Mprice SMALLMONEY NOT NULL, --当时价格
)
这两个表的设计如上所示
现在向这两个表中插入数据,要求是一个订单上会有多个物品,即向表OrderInfo中插入一个订单(订单编号自动生成),同时OrderList表根据OrderInfo表刚插入的订单编号,向OrderList表中插入多行。显示如下:
插入OrderInfo表:
Oid Onume Uid
11 10 100
这条信息插入的同时,插入OrderList表:
Oid Did Mid Mprice
11 2 1002 25.5
11 2 1003 26
11 2 1004 45
......
请问存储过程该如何写?
我写的是
INSERT INTO OrderInfo( Onume,Uid )
VALUES( @Onume,@Uid ) DECLARE @Oid INT
DECLARE @Did1 INT
SELECT @Oid = @@IDENTITY FROM OrderInfo
INSERT INTO OrderList( Oid,Did,Mid,Mprice )
VALUES ( @Oid,@Did,@Mid,@Mprice )
但我觉得不对,非常不对,请高手指点,谢谢了
>>
SELECT @Oid = @@IDENTITY2 OrderList插入
根据业务逻辑循环插入
Oid Onume Uid
11 10 100
这条信息插入的同时,插入OrderList表:
Oid Did Mid Mprice
11 2 1002 25.5
11 2 1003 26
11 2 1004 45我没看出这里面的规律~
如果是放在游标里的,就一条一条的取出来,加上@Oid,插入。
如果是临时表什么的,那就更简单 values部分写成
select @Oid, Did,Mid,Mprice from #OrderListXX ...
取得@@IDENTITY后用该值进行关联表的插入