加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL SERVER 小系统单据自动生成存储过程

发布时间:2020-12-12 07:56:47 所属栏目:MsSql教程 来源:网络整理
导读:感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 代码如下: create table [order] ( code varchar(50),createtime datetime ) --应用 usp_ordernumbergenerate(@prefix = PRC100701) --传入前缀 大类+单据编码+6位日期 --获取当日该类

感兴趣的小伙伴,下面一起跟随编程之家 52php.cn的小编两巴掌来看看吧!

 

代码如下:


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,GETDATE()) = 0 

select @orderNumber =@prefix + RIGHT(REPLICATE('0',@Digits) 
+ CAST(@midcode as VARCHAR),@Digits) 

print @ordernumber

 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读