访问sqlserver时:插入数据的C#代码
DECALRE @id INT;INSERT INTO EVENT(EVENT_NAME,FLOW_TYPE,EVENT_DESC,EVENT_NO) VALUES(@EVENT_NAME,@FLOW_TYPE,@EVENT_DESC,@EVENT_NO);SELECT @id=@@IDENTITY; --得到新插入行的标示
SELECT @id;然后用rs.GetInt32(0);即可得插入后自增长字段ID的值
    
请问在oracle中如何用类似语句实现,谢谢各位!!

解决方案 »

  1.   

    数据需要做这样设计:
    create sequence seq_EVENT_id increment by 1 start with 1 maxvalue 999999999;
    ---------------
    程序中SQL,这一句就行:
      INSERT INTO EVENT(id, EVENT_NAME,FLOW_TYPE,EVENT_DESC,EVENT_NO) 
                 VALUES(seq_EVENT_id.nextseq, @EVENT_NAME,@FLOW_TYPE,@EVENT_DESC,@EVENT_NO);
      

  2.   

    谢谢大山!那是不是每张表都要做一个对应的 SEQUENCE 呢?还有就是我想得到你说的那个seq_EVENT_id的值,就是在insert语句执行完后得到seq_EVENT_id.nextseq,该如何获得呢?谢谢!
      

  3.   

    或,
      定义一个变量 n_id = seq_EVENT_id.nextseq 得到此次的ID
      INSERT INTO EVENT(id, EVENT_NAME,FLOW_TYPE,EVENT_DESC,EVENT_NO) 
                 VALUES(n_id, @EVENT_NAME,@FLOW_TYPE,@EVENT_DESC,@EVENT_NO);
      

  4.   

    select seq_EVENT_id.nextseq  from dual; 可取出最新的ID,当执行第二次的时候,ID又变了,永远加1."就是在insert语句执行完后得到seq_EVENT_id.nextseq,该如何获得呢?"  不用获取.如想得到这个ID, 用select id from EVENT取已插入数据库中的ID.你多多试试,在sqlplus中,就会明白了.
      

  5.   

    是的,如有这样的需要,每个表都要加这个sequence.
      

  6.   

    大山,还要麻烦您一下。
    我写了一句  select seq_EVENT_id.currval  from dual; 
    但是报错。
    如果写 select seq_EVENT_id.nextval  from dual;没有问题。请问这是怎么回事那?谢谢!(看别人的帖子好像可以加分,想再加点分给你,可找了半天没有找到,不知道再哪加,不好意思。)
      

  7.   

    SQL> create table EVENT (id number,aa varchar(20));表已创建。SQL> create sequence seq_EVENT_id increment by 1 start with 1 maxvalue 999999999;序列已创建。
    SQL> select seq_EVENT_id.nextval  from dual;   NEXTVAL
    ----------
             1SQL> select seq_EVENT_id.nextval from dual;   NEXTVAL
    ----------
             2SQL> select seq_EVENT_id.currval  from dual;   CURRVAL
    ----------
             2-----------------------------------------------------------可以参考:  http://edu.yesky.com/edupxpt/424/2137924.shtml
      

  8.   

    就是说,有 seq_EVENT_id.nextval 这个之后才可以 seq_EVENT_id.currval.
      

  9.   

    序列第一次使用必须nextval,否则currval没有值.
      

  10.   

    SQL Server代码优化的不是太优啊.