• 生成10位由大小写字母和数字组成的随机激活码


    /*
    select char(65+ceiling(rand()*25))   --随机字母(大写)
    select char(97+ceiling(rand()*25))   --随机字母(小写)
    select cast(ceiling(rand()*9) as varchar(1))   --随机数字 1至9的随机数字(整数)
    */
    
    DECLARE  @i    int           
    DECLARE  @flag int
    DECLARE  @SerialNumber  nvarchar(20)
    
    --初始化设定
    SET  @i=1
    SET  @SerialNumber = ''
    
    --生成10位随机码
    WHILE @i<11
    BEGIN
        --设置随机,这个随机会选择字母(大小写)还是数字
        SET @flag=ceiling(rand()*3) 
    
        IF @flag=1 
        BEGIN
           --随机字母(大写)
           select @SerialNumber=@SerialNumber+char(65+ceiling(rand()*25))
        END
        else if @flag=2
             begin
                 --随机字母(小写)
                 select @SerialNumber=@SerialNumber+char(97+ceiling(rand()*25))
             end
             else begin
                 --随机数字 1至9的随机数字(整数)
                 select @SerialNumber=@SerialNumber+cast(ceiling(rand()*9) as varchar
    
    (1))
             end
    
         --进行下一个循环
         SET @i=@i+1
    END
    
    SELECT @SerialNumber as '生成的10位激活码'

    ---但是有的时候需要前面几位必须是纯英文字母,后面几位纯数字或随意字母和数字

    /*
    select char(65+ceiling(rand()*25))   --随机字母(大写)
    select char(97+ceiling(rand()*25))   --随机字母(小写)
    select cast(ceiling(rand()*9) as varchar(1))   --随机数字 1至9的随机数字(整数)
    */
    
    DECLARE  @i    int           
    DECLARE  @flag INT
    DECLARE  @SerialNumber nvarchar(20)
    
    --初始化设定
    SET  @i=1
    SET  @SerialNumber = ''
    
    --生成10位随机码
    WHILE @i<11
    BEGIN
        --设置随机,这个随机会选择字母(大小写)还是数字
        SET @flag=ceiling(rand()*3) 
    
        IF @i < 6  --前五位是字母
        BEGIN
                IF @flag=1 
                BEGIN
                     --随机字母(大写)
                     select @SerialNumber=@SerialNumber+char(65+ceiling(rand()*25))
                END
                ELSE BEGIN
                     --随机字母(小写)
                     select @SerialNumber=@SerialNumber+char(97+ceiling(rand()*25))
                END
    
         END
         ELSE BEGIN  --后面几位是字母或数字
                IF @flag=1 
                BEGIN
                   --随机字母(大写)
                   select @SerialNumber=@SerialNumber+char(65+ceiling(rand()*25))
                END
                else if @flag=2
                     begin
                         --随机字母(小写)
                         select @SerialNumber=@SerialNumber+char(97+ceiling(rand()*25))
                     end
                     else begin
                         --随机数字 1至9的随机数字(整数)
                         select @SerialNumber=@SerialNumber+cast(ceiling(rand()*9) as varchar(1))
                     end
         END
         
         
         --进行下一个循环
         SET @i=@i+1
    END
    
    SELECT @SerialNumber as '生成的10位激活码'
  • 相关阅读:
    [Python] Marshmallow QuickStart
    [Python]Marshmallow 代码
    [python]Flask-migrate简单入门
    [数据库]Sqlite使用入门
    [Python] dict对象的keys()和values()返回的值,是否总是保证一一对应?
    【Weiss】【第03章】练习3.20:中缀表达式转后缀表达式
    【Weiss】【第03章】练习3.19:计算后缀表达式
    【Weiss】【第03章】练习3.18:检查平衡符号
    【Weiss】【第03章】练习3.17:懒惰删除
    【TIJ4】第六章全部习题【习题未完成】
  • 原文地址:https://www.cnblogs.com/DBArtist/p/ActivationCode.html
Copyright © 2020-2023  润新知