zoukankan      html  css  js  c++  java
  • 生成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位激活码'
  • 相关阅读:
    c++关于析构的那点小事(个人吐槽向
    我分析内存泄漏的一道作业题,已解决
    大一上学期的一点小疑惑,代码验证ok
    C++类型转换
    c++形参改变实参(对指针的理解
    c++整型->字符型转换
    [转]二重积分换元法的一种简单证明 (ps:里面的符号有点小错误,理解就好。。。
    c++实现矩阵类矩阵行列式,伴随矩阵,逆矩阵
    假期周计划2.0
    大道至简
  • 原文地址:https://www.cnblogs.com/DBArtist/p/ActivationCode.html
Copyright © 2011-2022 走看看