小系统单据自动生成存储过程
小系统单据自动生成存储过程
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:createtable[order](codevarchar(50),createtimedatetime)--应用usp...

复制代码 代码如下:

create table [order]

(

code varchar(50),

createtime datetime

)

--应用 usp_ordernumbergenerate(@prefix = 'PRC100701')

--传入前缀 大类+单据编码+6位日期

--获取当日该类单据最大流水号(需按日归零)

--此处判断有两种方法:一种是根据传入6位日期判断;另一种根据单据创建日期字段(前提:表有创建时间字段)

create procedure usp_OrderNumberGenerate

@prefix varchar(50)

as

declare @count int

declare @midcode varchar(3)

declare @Digits int = 3

declare @orderNumber varchar(50)

select @count = COUNT(*) from [order] where DATEDIFF(day, createtime, GETDATE()) = 0

if(@count = 0) --当日无单据情况 流水号为001

--print @count

select @orderNumber = @prefix + '001'

else --当日有单据情况 最大流水号+1

select @midcode = max(substring(midcode, 10, 3)) + 1

from [order]

where DATEDIFF(day, createtime, GETDATE()) = 0

select @orderNumber =@prefix + RIGHT(REPLICATE('0', @Digits)

+ CAST(@midcode as VARCHAR), @Digits)

print @ordernumber

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新mssql数据库学习
热门mssql数据库学习
编程开发子分类