首页 > 其他 > 详细

表t有 一列 samplecode,程序每次生成id的时候都先从这里获取最大值再加1,初始值是A0000001,然后到A9999999的时候则是到B0000001 共8位

时间:2015-12-21 18:22:50      阅读:356      评论:0      收藏:0      [点我收藏+]

drop table x
go
create table x(id varchar(10))
--insert into x values(‘A001‘)
go
with a as (
select ISNULL(max(id),‘A0000‘) maxid from x)
insert into x (id)
select
case when RIGHT(maxid,4)<9999
THEN LEFT(maxid,1)+RIGHT(‘000‘+CAST(RIGHT(maxid,4)+1 AS VARCHAR(10)),4)
ELSE CHAR(ASCII(LEFT(maxid,1))+1)+‘0001‘
end
from a
go 10000
select * from x
go

  

--两位

drop table 
go
create table x(id varchar(10))
go
with as (
select ISNULL(max(id),‘A00‘) maxid from x)
insert into x (id)
select 
 case when substring(maxid,2,30) = ‘99‘ then CHAR(ascii(left(maxid,1)) +1) + ‘01‘
      else LEFT(maxid,1) + right(‘0000‘ cast((SUBSTRING(maxid,2,30) + 1 ) as varchar(30)) ,2)
 end     
 from 
 go 200
select from 
go

表t有 一列 samplecode,程序每次生成id的时候都先从这里获取最大值再加1,初始值是A0000001,然后到A9999999的时候则是到B0000001 共8位

原文:http://www.cnblogs.com/yangpeng-jingjing/p/5063827.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!