如果式数字型identity可用
@@identity

解决方案 »

  1.   

    create proc p_anme(@Tname varchar(50),@Fname varchar(50),@rtn varchar(50) output)
    as
    declare @str varchar(100)
    set @str='select '+@rtn+'=max('+@Fname+') from '+@Tname'
    go
      

  2.   

    create proc p_anme(@Tname varchar(50),@Fname varchar(50),@rtn varchar(50) output)
    as
    declare @str varchar(100)
    set @str='select '+@rtn+'=max('+@Fname+') from '+@Tname'
    exec (@str)
    go
      

  3.   

    create proc p_getbh
    @tbname sysname,  --要求编号的表名
    @fdname sysname   --编号字段
    as
    declare @re varchar(30)
    declare @sql nvarchar(1000)
    set @sql='select @re=max('+@fdname+') from '+@tbname
    exec sp_executesql @sql,N'@re varchar(30) out',@re out
    if @re is null
    set @re='1'
    else
    set @re=cast(cast(@re as int)+1 as varchar)
    return(@re)
    go
    --调用
    declare @newbh varchar(30)
    exec @newbh=p_getbh '表名','主键字段名'
    select 最新编号=@newbh