--改为Create proc getnewsid
 @talbename varchar(20),
 @bstr  varchar(10) out
as 
  declare @serid varchar(1),@maxid float, @temp varchar(9),
          @len int,@result varchar(9)set @serid='A'
select top 1 @serid=serid from serid
set @maxid=0;
declare @sql nvarchar(4000)
set @sql='select @maxid=convert(float,substring(id,2,9)) from ' + @talbename + ' 
order by  convert(float,substring(id,2,9)) desc' exec sp_executesql @Sql,N'@maxid int out',@maxid outset @maxid=@maxid+1
set @temp='000000000'
set @len=len(convert(varchar(9),@maxid))
set @result=substring(@temp,1,9-@len)+convert(varchar(10),@maxid) 
set @bstr=@serid + @result
go-- 调用
declare @bstr varchar(10)
exec dbo.getnewsid 'news_table',@bstr out
select @bstr