执行完a中新增一条记录后,用@@IDENTITY来获取a中自动生成的ID

解决方案 »

  1.   

    使用存储过程得到刚插入记录Table A的ID
      

  2.   

    楼上,谢谢,请说详细。。如
    insert into.....
      

  3.   

    INSERT INTO a(A_Name) VALUES('Accountant')
    INSERT INTO b(A_ID) VALUES(@@IDENTITY)
      

  4.   

    stoway({有问题请发短消息给我})
      

  5.   

    给你提供点参考:创建自增长ID的procedure:
    CREATE OR REPLACE procedure get_serialno_pro(v_prefix in serialno.PREFIX%type,
    v_length in serialno.LENGTH%type,
    v_out_serialno out serialno.CURSN%type)as
     v_para serialno.CURSN%type;
     v_Num int ;
     v_inner int;
    begin
     select count(*) into v_Num from serialno where prefix=v_prefix and length=v_length;
     
     if(v_Num<=0) then
        if(v_length<=5) then
       insert into serialno(prefix,cursn,interval,length) values(v_prefix,'1001',1,v_length);
        else  --
         insert into serialno(prefix,cursn,interval,length) values(v_prefix,'100000000000001',1,v_length);
      end if;
     end if;
     
     select cursn into v_para from serialno where prefix=v_prefix and length=v_length;
     --dbms_output.PUT_LINE(v_out_serialno);
     v_out_serialno:=v_prefix||v_para;
     v_inner:=v_para+1;
     --dbms_output.PUT_LINE(v_out_serialno);
     update serialno set cursn=v_inner where prefix=v_prefix and length=v_length;
     
    end get_serialno_pro;
    /给一个表插入一条记录,并返回此记录的ID:
    CREATE OR REPLACE procedure Sp_Insert_B01(
      v_B0100 out B01.B0100%Type ,
      v_B0105 in B01.B0105%Type ,
      v_B0110 in B01.B0110%Type 
      )
    isp_B0100 B01.B0100%type;p_serialno serialno.CURSN%type;
    begin
        --
        get_serialno_pro('B',16,p_B0100);
    v_B0100:=p_B0100;
        Insert Into B01 Values(
        p_B0100, v_B0105, v_B0110);
      Commit;
    end;
    /