程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 小系統單據自動生成存儲過程

小系統單據自動生成存儲過程

編輯:更多數據庫知識

復制代碼 代碼如下:
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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved