日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

通过SQL自动添加流水号

發布時間:2023/12/31 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 通过SQL自动添加流水号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目中往往有一些單據流水號或者流程流水號是希望通過新增一條記錄后自動產生一個編號的,比如新增一條流程就自動根據當前日期自動添加該流程的流程流水號,下面介紹兩種不同類型流水號通過SQL自動產生的方法。

流水號格式:

第一種(數值類型):日期+流水號,比如“201104190001”-->"201104190002";

第二種(文本類型):前綴+日期+流水號,比如“WT201104190001”-->"WT201104190002"。

不論哪種情況,流水號的生成原則都是一樣的,流水號的產生都需要根據當前日期產生,新增的一條記錄的流水號為當前日期下所有記錄中流水號最大那條加1得來。

一、數據庫中添加一個表:TestNo

列名 數據類型 說明

ID uniqueidentifier主鍵

No bigint 流水號字段,不過是純數字型的流水號,這個為本例子的第一種情況,流水號可以為純數字

DT datetime新增一條記錄的當前時間,相信每新增一條記錄都會記錄這次操作的當前時間的。

CharNo varchar(50) 流水號字段,不過是可以有字符的流水號,這個為本例子的第二種情況。

二、SQL代碼

------
--自動流水號為純數字的情況,如 201104190005
------
declare 
@x int,
@y char(8)
select @x= COUNT(no) from TestNo where CAST(DT as date)=CAST(GETDATE() as date)
if(@x=0)
begin
select @y=convert(char(8),getdate(),112)
insert TestNo(No,DT) values(
@y+'0001'
,GETDATE())
end
else
  insert TestNo(No,DT) values(
(select MAX(No)+1 from TestNo where CAST(DT as date)=CAST(GETDATE() as date))
,GETDATE())
select * from TestNo

------
--自動流水號為字符的情況,如 WT201104190005
------
declare 
@x1 int,
@y1 char(8)
select @x1= COUNT(CharNo) from TestNo where CAST(DT as date)=CAST(GETDATE() as date)
if(@x1=0)
begin
select @y1=convert(char(8),getdate(),112)
insert TestNo(CharNo,DT) values(
'WT'+@y1+'0001'
,GETDATE())
end
else
begin
  insert TestNo(CharNo,DT) values(
'WT'+cast((select MAX(CAST( SUBSTRING(charno,3,12) as bigint))+1 from TestNo where CAST(DT as date)=CAST(GETDATE() as date))as varchar(50))
,GETDATE())
end
select * from TestNo
--------------------------------------------------------------------------------------------

總結

以上是生活随笔為你收集整理的通过SQL自动添加流水号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。