• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    利用sql函数生成不重复的订单号的代码
    复制代码 代码如下:

    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

    调用:在事务中先锁定要操作的表
    复制代码 代码如下:

    SELECT * FROM tb_EbayOrder WITH (TABLOCKX)
    SELECT * FROM tb_EbayOrderList WITH (TABLOCKX)
    SELECT * FROM tb_EbayOrderUserInfo WITH (TABLOCKX)

    调用:select dbo.GetOrderNum(@ebaystockflag)
    您可能感兴趣的文章:
    • 利用asp.net实现生成不重复订单号
    • 存储过程实现订单号,流水单号(8位)的详细思路
    • PHP生成唯一订单号的方法汇总
    • C#实现在购物车系统中生成不重复订单号的方法
    • PHP生成唯一订单号
    • C#生成唯一不重复订单号
    上一篇:sqlserver合并DataTable并排除重复数据的通用方法分享
    下一篇:动态SQL中返回数值的实现代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    利用sql函数生成不重复的订单号的代码 利用,sql,函数,生成,不,重复,