自己写的生成订单(号)的存储过程

订单号格式:yyyyMMddhhmmxxxx,后面四位递增数

create proc [dbo].[proc_OrderManager]
(
 @userId uniqueidentifier,
 @creditCount int
)
as
begin
 begin tran
  declare @nowCount int
  declare @now nvarchar(12)
  declare @date datetime
  select @date=GETDATE()
  select @now= CONVERT(nvarchar(12),@date,112)+DATENAME(HH,@date)+DATENAME(MINUTE,@date)
  select @nowCount=COUNT(*) from dbo.ShopOrder where time=@now
  declare @ordernumber nchar(16)
  if @nowCount<=0
  begin
   select @ordernumber=@now+'0000'
   insert into ShopOrder output inserted.OrderNumber values(@userId,@ordernumber,@creditCount,@now,0)
  end
  else
  begin
   declare @maxNumber bigint
   select @maxNumber=MAX(CAST(ordernumber as bigint)) from ShopOrder
   insert into shoporder output inserted.OrderNumber values(@userId,@maxNumber+1,@creditCount,@now,0)
  end
 commit
end

 

posted @ 2013-02-22 00:05  futuredotnet  阅读(248)  评论(0)    收藏  举报