SQL Server利用sql函数生成不重复的订单号的代码
2022-11-12 09:48:00
内容摘要
这篇文章主要为大家详细介绍了SQL Server利用sql函数生成不重复的订单号的代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
文章正文
这篇文章主要为大家详细介绍了SQL Server利用sql函数生成不重复的订单号的代码,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <code> ALTER function [dbo].[GetOrderNum]( @ebaystockflag varchar(20) //规则字母 ) returns varchar(100) AS BEGIN declare @dt CHAR(8) declare @flag varchar(20) set @flag= 'B' +@ebaystockflag set @dt=CONVERT(CHAR(8), GETDATE (),112) declare @max varchar(100) SELECT @max=MAX(OrderNumber) FROM tb_EbayOrder WITH(XLOCK,PAGLOCK) WHERE OrderNumber like @flag+ '%' set @max=isnull(@max, @flag+@dt+ '000' )--查不到结果给个默认值 declare @a varchar(100) declare @num varchar(10) declare @ordernum varchar(20) set @a=Convert(varchar,right(@max,len(@max)-10))--截取数字部分 if (LEFT(@a,1)=0)--以0开头 begin if (SUBSTRING(@a,2,1)=0)--有两个0 begin set @num=Convert(varchar,SUBSTRING(@a,3,LEN(@a-2))+1) end else if (SUBSTRING(@a,3,1)=0 and SUBSTRING(@a,2,1)=0)--有三个0 begin set @num=1 end else begin --只有一个0的情况 set @num=Convert(int,SUBSTRING(@a,2,LEN(@a))+1) end end else begin --数字大于100的情况 set @num=Convert(varchar,@a+1) end if (LEN(@num)=1)--截取后不满三位的补0 begin set @num= '00' +@num end if (LEN(@num)=2) begin set @num= '0' +@num end set @ordernum=@flag+@dt+@num return @ordernum END </code> |
代码如下:
1 2 3 4 5 | <code> SELECT * FROM tb_EbayOrder WITH (TABLOCKX) SELECT * FROM tb_EbayOrderList WITH (TABLOCKX) SELECT * FROM tb_EbayOrderUserInfo WITH (TABLOCKX) </code> |
注:关于SQL Server利用sql函数生成不重复的订单号的代码的内容就先介绍到这里,更多相关文章的可以留意
代码注释