zoukankan      html  css  js  c++  java
  • 如何向后台数据库中插入多条记录?

    现在我要处理一个问题,步骤如下:

    1,在主表中插入一条记录,获取这条记录的主键1,主键是自增的。

    2,在子表中插入多条与主键1相关的记录,并且记录的数量是随机的,不确定。

    要求:

    步骤1,2要同时完成或者取消,即事务的概念。在sqlserver2005中可以写一个存储过程,或者在前台用c#控制逻辑。

    哪位高手可以帮忙解决一下?

    例如:

    表1:(主表)orders(oid,customerid,gettime,nums,flags)primarykey:oid identity(自增的)int

    表2:(子表)orderdetails(odid,oid,gid)primarykey:odid foreignkey:oid

    begin try

    begin tran

    declare @oid int,@nums int,@f int;

    set @f=1;

    insert into orders(customerid,gettime,flags) values(1,getdate(),2);

    select @oid=oid from orders where flags=2;

    select @nums=nums from orders where oid=@oid;

    update orders set flags=1 where flags=2;

    while @nums>0

    begin

    insert into orderdetails(odid,oid,gid) values(?,@oid,?);

    set @nums=@nums-1;

    end

    end try

    begin catch

    rollback tran;

    set @f=0;

    end catch

    if @f=1

    commit tran;

    上面存在问题就是无法将子表的多个参数传递到循环中?如何解决?

    另外的一种方法是在逻辑层用程序控制,怎么控制?

  • 相关阅读:
    P4141 消失之物(退背包模板)
    P5829 【模板】失配树
    P4827 [国家集训队] Crash 的文明世界
    P4074 [WC2013]糖果公园
    P3242 [HNOI2015]接水果
    P2371 [国家集训队]墨墨的等式
    P4819 [中山市选]杀人游戏
    P5331 [SNOI2019]通信
    BZOJ1082 [SCOI2005]栅栏
    poj1475 Pushing Boxes[双重BFS(毒瘤搜索题)]
  • 原文地址:https://www.cnblogs.com/xingyayang/p/1322313.html
Copyright © 2011-2022 走看看