写了一个数据库的连继ID号(格式:xxxx000001)

 1CREATE PROCEDURE P_GetHId 
 2(
 3    @len int,            --长度
 4    @str varchar(10),        --前缀
 5    @tableName varchar(20),     --表名
 6    @tableFild varchar(20)        --字段名
 7)
 8AS
 9BEGIN
10SET NOCOUNT ON
11declare @stra varchar(20)
12declare @sql varchar(800)
13
14set @stra='0000000000000000000'
15set @len=@len-len(@str)
16
17set @sql='
18    declare @fId varchar(50)
19    set @fId=''0''
20select top 1 
21    @fId='+@tableFild+' from '+@tableName+'
22order by '+@tableFild+' desc'
23set @sql=@sql+'
24    select '''+@str+'''+left('''+@stra+''','+cast(@len as varchar(2))+'-len(right(
25        @fId,'+cast(@len as varchar(2))+')+1))
26        +cast(right(@fId,'+cast(@len as varchar(2))+')+1 as varchar(50))'
27exec(@sql)
28end
29GO
30

调用 exec P_GetHId  10,'PN','表名','字段名'   得到结果为 PN00000001 开始递增
posted @ 2007-06-27 15:30  狂歌  阅读(397)  评论(0)    收藏  举报