小系统单据自动生成存储过程
更新时间:2010年07月03日 00:50:24 作者:
此处判断有两种方法:一种是根据传入6位日期判断;另一种根据单据创建日期字段(前提:表有创建时间字段)
复制代码 代码如下:
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
相关文章
SQL server修改表错误提示:阻止保存需要重新创建表的更改解决办法
这篇文章主要给大家介绍了关于SQL server修改表错误提示:阻止保存需要重新创建表的更改的解决办法,文中将解决的办法介绍的非常详细,对同样遇到的朋友具有一定的参考解决价值,需要的朋友可以参考下2024-06-06
SqlServer Mysql数据库修改自增列的值及相应问题的解决方案
这篇文章主要介绍了SqlServer Mysql数据库修改自增列的值及相应问题的解决方案的相关资料,需要的朋友可以参考下2016-01-01


最新评论