ID为自动标识,我在插入一行数据后,想把这个自动标识取出来,然后在另外一个表关联,请问怎么在插入数据行时,返回ID值,只能用存储过程吗?

解决方案 »

  1.   

    如果是SqlServer,可以使用@@IDENTITY来获取.
      

  2.   

    或者从指定表中获取指定表的标识:IDENT_CURRENT( 'table_name' )
      

  3.   

    SqlServer的联机帮助中:IDENT_CURRENT 返回为某个会话和用域中的指定表生成的最新标识值。
    @@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。
    SCOPE_IDENTITY 返回为当前会话和当前作用域中的某个表生成的最新标识值。
      

  4.   

    INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'
      

  5.   

    INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'
    这种方法不好吗?没有使用存储过程Oracle里有设置自动增长的步长,MSSQL不太清楚还有个很不好的方法用:
    insert后马上
    select id from [table] where id =(select max(id) from [table])