可以吧
@@IDENTITY 和 SCOPE_IDENTITY 将返回在 当前会话 的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。

解决方案 »

  1.   

    也就是我的当前会话有多个类似的过程在同时执行,而我要得到每次执行insert后该语句所插入的identity号!
      

  2.   

    这样...  好像并发也会影响....Create Procedure MyInsert
           @FieldVal Varchar(30), @id Int OUTPUT AS
           Insert Into IColTest (F2) Values(@FieldVal)
           Select top 1 @id=id from IColTest where fieldVal=@FieldVal order by id desc--id改为你的子增列的列名
      

  3.   

    ---------------------------------------
    这样...  好像并发也会影响....Create Procedure MyInsert
           @FieldVal Varchar(30), @id Int OUTPUT AS
           Insert Into IColTest (F2) Values(@FieldVal)
           Select top 1 @id=id from IColTest where fieldVal=@FieldVal order by id desc--id改为你的子增列的列名
    ----------------------------------------------------
    ----------------------------------------------------
    ----------------------------------------------------
    但是,如果有两个同时执行这个过程,会有影响吗?
    我的意思是,我用ADO连接数据库,然后有两个线程同时用这个连接去执行这个过程,会有影响吗?