最近做項目在做到工單處理的時候,工單的流水号需要自動産生,找了好多方法,都有點麻煩,并且并發性都難以控制,工單号的格式要求是:單的辨別+年月日+當日流水号(如:No.20080808001,No.20080808002),前面的都好處理,關鍵就是處理當日流水号的問題,使用者一點建立單馬上就要出現單号,是以自己想了種比較簡單的方法來實作每天流水号的産生,産生流水号的方法很簡單,但是也沒有很好的并發性處理,建立時使用的單号很可能已經别别人搶先使用了,是以我在儲存單的時候再做一次檢查,如果單号已經别使用那麼就重新生成一個單号,儲存完成後将這個單号傳回給使用者,這樣就基本幾解決了工單号的産生問題了
表格如下:
表名(Bill)
字段名稱 | 字段意義 |
---|---|
Id | 辨別 |
No | 流水号 |
Title | 工單标題 |
CreateTime | 建單時間 |
為了簡單又能說明問題,就這麼多字段,那麼我要每次增加一張單的時候怎麼讓No按照當天的流水号自動加1呢?
可以在SQL裡自定義一個函數,然後再插入資料的時候來調用這個函數就可以了
/**//*
**************************************
功能:産生當天工單的流水号
參數:@pfx 字首表示,如:A ,AA, BA
結果:傳回如:A080721001,A080721002