利用函数生成不重复的订单号

主要利用函数 getOrderNum()生成 订单号

订单规则,当前年数后2位+月数+日期+五位数字

新的一天 数字从00001 开始逐增加

 

源代码:

CREATE TABLE [dbo].[OrderTest](
    [OrderID] [varchar](50NULL,
    [OrderName] [varchar](50NULL
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');

 

 

posted @ 2012-01-05 11:32  lance2008  阅读(637)  评论(0编辑  收藏  举报