天天看點

利用函數生成不重複的訂單号

主要利用函數 getOrderNum()生成 訂單号

訂單規則,目前年數後2位+月數+日期+五位數字

新的一天 數字從00001 開始逐增加

源代碼:

CREATE TABLE [dbo].[OrderTest](

    [OrderID] [varchar](50) NULL,

    [OrderName] [varchar](50) NULL

) ON [PRIMARY]

CREATE function [dbo].[getOrderNum]()

returns varchar(50)

as

begin

declare @code varchar(50)

--right(CONVERT(varchar(100), GETDATE(), 112),6) 擷取時間 120105

select @code=right(CONVERT(varchar(100), GETDATE(), 112),6) +right('00000'+cast(

isnull(max(right(OrderID,5)),0)+1 as varchar),5)  

from    OrderTest WITH(XLOCK,PAGLOCK)  where left(OrderID,6)= right(CONVERT(varchar(100), GETDATE(), 112),6) --建立表級鎖    

return @code

end

GO

測試例子:

insert into OrderTest values(dbo.getOrderNum(),'clc2008');