CREATE proc GetOrderNo
@OrderNo varchar(14) output --声明输出变量
as
BEGIN
--变量
DECLARE @result varchar(14),@id varchar(6),@lasttime smalldatetime
--一天清空一次表
set @lasttime=(select top 1 CreateAt from B_Identity order by CreateAt desc)
if(DateDiff(day,@lasttime, GETDATE())>0)
begin
truncate table B_Identity --初始化表 是自增量归零 重新开始
end
--日期字符串 生成前8位
set @result=CONVERT(varchar(100), GETDATE(), 112)
insert B_Identity(CreateAt) values(getdate())
--id 补零 生成后6位
set @id=SCOPE_IDENTITY();
set @id= right('000000'+@id,6)
set @OrderNo=(@result+@id)
end
--调用
declare @orderno varchar(14)
exec GetOrderNo @orderno output
select @orderno