存储过程 订单中子表多条数据与 主表 相结合

create proc proc_AddPuchase
(
    @Purchase_Id int,
    @Purchase_curom int,
    @Purchase_date datetime,
    @Purchase_State varchar(30),
    @SumMoney int,
    @Purchase_Remark varchar(max),
    @Supplier_Id int,
    @WareHose_Id int,
    @Employee_Id int,
    @xml xml--子表传过来的是XML类型
)
as
begin tran
insert into Purchase(Purchase_Id,Purchase_curom,Purchase_date,Purchase_State,SumMoney,Purchase_Remark,Supplier_Id,WareHose_Id,Employee_Id) values(@Purchase_Id,@Purchase_curom,@Purchase_date,@Purchase_State,@SumMoney,@Purchase_Remark,@Supplier_Id,@WareHose_Id,@Employee_Id);    
    declare @id int ,@pointer int
    set @id=@@IDENTITY;
    begin
    create table #oo
    (
        Purchase_Id int,
        Product_Id int,
        PurchaseMate_Num int,
        PurchaseMate_Price decimal
    )
    end
    execute sp_xml_preparedocument @pointer output,@xml  --sp_xml_preparedocument语式
    insert into #oo(Purchase_Id,Product_Id,PurchaseMate_Num,PurchaseMate_Price)
    select Purchase_Id,Product_Id,PurchaseMate_Num,PurchaseMate_Price from openxml(@pointer,'/ss/cc') --系统程序sp_xml_preparedocument  指向'/ss/cc'
   with(
        Purchase_Id int,Product_Id int,PurchaseMate_Num int,PurchaseMate_Price decimal
   )
   
   
   
   update #oo set Purchase_Id=@id  --修改临时表中的外键
   
   insert into PurchaseMate select * from #oo  --将临时 表中的数据全部添加到OrderSonInfo中

   if(@@ERROR>0)  --判断以上操作是否执行完毕
   begin
        rollback tran --回滚
        return 0
   end
   else
   begin
       commit tran --提交
       return 1
   end

转载于:https://www.cnblogs.com/MJK-ONG/p/6052436.html

销售订单数据库管理系统 1、某销售商的订单系统需要如下信息: (1)每个供应商包含供应商编号、名称、地址、联系电话等信息。 (2)每种产品包含产品号、产品名称、单价,库存数等信息。 (3)每个供应商可供应多种产品,每种产品可由多个供应商供应。 (4)客户包含编号、姓名、通信地址、电话等信息。 2、其业务规则描述如下: (1)一个客户可下多个订单,每个订单只能由一个客户下。客户下单时有下单时间。 (2)一个订单订单号,订单状态,订单总价和多个订单细节组成。 (3)每个订单细节对应一个产品描述。订单细节由细节编号,订购数量,金额等组成。 3、系统功能基本要求: A.使用存储过程完成以下查询统计 (1)按照一定条件查询商品基本信息,比如商品名称、价格范围等信息。 (2)根据客户姓名统计每个客户的订单总额。 B.定义一些视图 (1)按销量展示所有商品。 (2)显示订单量最多的客户或者产品。 C.使用存储过程和触发器模拟完成一个订单交易 订单交易主要包括客户注册,登录,查询商品(非注册用户和注册用户均可),订购商品(注意订购商品只面向注册用户,订购的过程中需对商品库存进行判断,注意订购后商品库存的变化,订单总额的计算),支付,取消订单等全过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值