最近有一项要求:
在SqlServer 数据库中生成随机订单号,且不能以0开头;
记录一下,以备后用。
如下图:生成了随机的12位长度的订单号

代码如下:
DECLARE @str VARCHAR(100), --变量
@BillCode VARCHAR(50) ='0', --要生成的随机单号,默认为0,用以配合以下WHILE方法
@LEN INT=12; --单号长度;
WHILE(CHARINDEX('0', @BillCode)=1)--判断是否是0开头,此案例中要求不以0开始
BEGIN
SET @str=CONVERT(VARCHAR(30), CONVERT(DECIMAL(20, 20), RAND(CHECKSUM(NEWID()))));
SET @BillCode=SUBSTRING(@str, 3, @LEN);
END;
SELECT @str, @BillCode;大家可以根据自己的需求,灵活改动以运用到自己的项目中。