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

14
 set @stra='0000000000000000000'
set @stra='0000000000000000000'15
 set @len=@len-len(@str)
set @len=@len-len(@str)16

17
 set @sql='
set @sql='18
 declare @fId varchar(50)
    declare @fId varchar(50)19
 set @fId=''0''
    set @fId=''0''20
 select top 1
select top 1 21
 @fId='+@tableFild+' from '+@tableName+'
    @fId='+@tableFild+' from '+@tableName+'22
 order by '+@tableFild+' desc'
order by '+@tableFild+' desc'23
 set @sql=@sql+'
set @sql=@sql+'24
 select '''+@str+'''+left('''+@stra+''','+cast(@len as varchar(2))+'-len(right(
    select '''+@str+'''+left('''+@stra+''','+cast(@len as varchar(2))+'-len(right(25
 @fId,'+cast(@len as varchar(2))+')+1))
        @fId,'+cast(@len as varchar(2))+')+1))26
 +cast(right(@fId,'+cast(@len as varchar(2))+')+1 as varchar(50))'
        +cast(right(@fId,'+cast(@len as varchar(2))+')+1 as varchar(50))'27
 exec(@sql)
exec(@sql)28
 end
end29
 GO
GO30

调用 exec P_GetHId 10,'PN','表名','字段名' 得到结果为 PN00000001 开始递增
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号