利用函数生成不重复的订单号
主要利用函数 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
[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');
个人签名:天行健,君子以自强不息