数据库表中有一列id,它是自动增长的。当我插入一条数据以后,怎么得到这个id是多少?
例如表有3列:ID、NAME,AGE
其中ID自动增长。
当我插入数据(TOM,20)后,怎么获得这个ID的值?
谢谢各位!

解决方案 »

  1.   

    http://www.cnblogs.com/ahuo/archive/2008/01/24/1051112.html
      

  2.   

    SQL SERVER中的三种获得自增长ID的方法
    例子:
          insert into users(Code,name) values('1111','aaaa')
          select  SCOPE_IDENTITY()
          select  @@IDENTITY
          select  IDENT_CURRENT('users')
    返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块――存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。
    IDENT_CURRENT(表名)
    返回为任何会话和任何作用域中的指定表最后生成的标识值。这个函数需要一个以表名为值的变量,也就是说虽然不受会话和作用域的限制,却会受到表的限制。@@IDENTITY返回最后插入的标识值。
      

  3.   

    insert into table2 (org) values ('aa') select SCOPE_IDENTITY() as id
      

  4.   

    忘记说了。我用的是oracle9i,用序列和触发器来实现ID的自动增长的。
      

  5.   

    前辈,我用的是oracle。还有就是,如果按照你这两句写,cmd执行用哪个函数?
    谢谢!
      

  6.   


    select  @@IDENTITY 在sqlserver中采用
      

  7.   

    select SEQ.nextval from dualSEQ是你用的序列名。
      

  8.   

    SELECT @@Identity FROM 数据库表说明:在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值。
    如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL。如果插入了多个行,生成了多个标识值,则 @@IDENTITY 将返回最后生成的标识值。
      

  9.   

    插入语句后跟一个.
    SELECT IDENT_CURRENT('表名') as 'Identity'
      

  10.   

    select  @@IDENTITY 
    获取新添加的id
      

  11.   

    oracle oracle oracle oracle oracle oracle oracle oracle oracle 
    oracle oracle oracle oracle oracle oracle oracle oracle oracle 
    oracle oracle oracle oracle oracle oracle oracle oracle oracle 
    我用的不是sqlserver,是oracle。大家帮我看看!
    谢了!
      

  12.   

                string str = "连接字符串";
                SqlConnection conn = new SqlConnection(str);
                conn.Open();
                string  cmd = "select top 1 id from 表名 order by id desc";
                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter(cmd,conn);
                da.Fill(ds,"表名");
                conn.Close();
                DataTable dt=ds.Tables["表名"];
                string getbusno=dt.Rows[0][0].ToString();
                
      

  13.   

               string str = "连接字符串"; 
                SqlConnection conn = new SqlConnection(str); 
                conn.Open(); 
                string  cmd = "select top 1 id from 表名 order by id desc"; 
                DataSet ds = new DataSet(); 
                OleDbDataAdapter da = new OleDbDataAdapter(cmd,conn); 
                da.Fill(ds,"表名"); 
                conn.Close(); 
                DataTable dt=ds.Tables["表名"]; 
                string getbusno=dt.Rows[0][0].ToString(); 
      

  14.   

    http://forum.csdn.net/BList/Oracle
      

  15.   

    sql数据库中可以使用select  @@IDENTITY oracle数据库:插入数据后执行使用select "ID索引的名称".currval from dual 可以获得
      

  16.   

    友情绑定~ 还以为是SQL呢~  
    呵呵
      

  17.   

    用序列seq的话,插入前先通过"select seq.nextval from dual",获取要插入的id,然后把这个id和别的值一起插入到数据库。
    但是现在我用了序列和触发器,所以只能先插入数据(不包括id)以后,通过“select seq.currval from dual”可以获取刚才插入的id。