create proc proc_name
as
set nocount on
Insert into StoreList(Name) 
Values( @Name)select @@identity   -->這個值就是自动增长的idgo

解决方案 »

  1.   

    在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。在返回插入到表的 @@IDENTITY 列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。 @@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。
      

  2.   

    可以用 return @@identity 的方式返回这个值
      

  3.   

    create proc proc_name
    @Name varchar(10)
    as
    set nocount on
    Insert into StoreList(Name) 
    Values( @Name)return @@identity godeclare @Cur_Ident as int
    declare @Name as varchar(10)
    set @Name = 'xxxx'
    exec @Cur_Ident = proc_name @Name
    print @Cur_Ident
      

  4.   

    记得一定要把@@identity 放在自己定义的变量里头
      

  5.   

    re: MorningTea(一勺抹茶)set nocount on 请问这一句是什么意思?
      

  6.   

    select @@identity  当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置
      

  7.   

    昨天csdn老是发不了帖!问题解决了,谢谢大家。 vivianfdlpw()    :)
    中秋节到了,祝大家心气舒畅、月圆人圆!