会议编号 自动生成年月日加3位流水号有没有代码,参考下
2个回答
展开全部
--一种方式就是先从数据表中取编号最大值,然后流水+1
create procedure GenerateSeq
as
begin
declare @MaxSeq varchar(20)
declare @NewSeq varchar(20)
declare @seq int
select @MaxSeq=MAX(id) from t1 where SUBSTRING(1,8,id)=convert(varchar(20),getdate(),112) --取表中当日最大编号
select @seq=cast(SUBSTRING(@MaxSeq,9,3) as int)+1
if @seq>99
set @NewSeq=convert(varchar(20),getdate(),112)+CAST(@seq as varchar)
if @seq>9 and @seq<=99
set @NewSeq=convert(varchar(20),getdate(),112)+'0'+CAST(@seq as varchar)
if @seq<=9
set @NewSeq=convert(varchar(20),getdate(),112)+'00'+CAST(@seq as varchar)
print @NewSeq
end
go
exec GenerateSeq
go
--另一种方式是专门create一张特殊的表保存编号
CREATE TABLE [dbo].[GenSeq](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Code] AS (convert(varchar(20),getdate(),112)+right((1000)+[ID],(3))),--此即为编号列
[InDate] [datetime] NULL
)
go
Create procedure [dbo].[GenerateSeq]
as
begin
declare @code varchar(30)
insert into GenSeq values (GETDATE());--每次插入的数据都是新的编号,先生成再取出来用即可
end
go
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |