• sql生成随机字符串


    --1、借助newid() 
    go 
    --创建视图(因为在函数中无法直接使用newid()) 
    create view vnewid 
    as 
    select newid() N'MacoId'; 
    go 
    --创建函数 
    create function getrandstr(@n int) 
    returns varchar(max) 
    as 
    begin 
    declare @i int 
    set @i=ceiling(@n/32.00) 
    declare @j int 
    set @j=0 
    declare @k varchar(max) 
    set @k='' 
    while @j<@i 
    begin 
    select @k=@k+replace(cast(MacoId as varchar(36)),'-','') from vnewid 
    set @j=@j+1 
    end 
    set @k=substring(@k,1,@n) 
    return @k 
    end 
    
    --测试示例 
    select dbo.getrandstr(75) 
    --运行结果 
    /* 
    D185504AD09C4D5796F7016983E67414CEE25162EA9F43D195D43328A4CF01AC7C586521D8E 
    */ 
    
    --我们可以发现结果中的字母都是大写的,或是都是小写的。 
    --换种方法来写下: 
    go 
    --创建函数 
    create function [dbo].[m_rand](@mycount int) 
    returns nvarchar(2000) 
    as 
    begin 
    declare @maco_wang table (id varchar(1)) 
    declare @maco_number int,@number int; 
    declare @my_one nvarchar(max),@my_two nvarchar(max) 
    set @my_one='';set @maco_number=0; set @number =48; 
    while (@number>=48 and @number<=57) or (@number>=65 and @number<=90) or (@number>=97 and @number<=122) 
    begin 
    insert into @maco_wang select char(@number) 
    set @number=@number+1; 
    if(@number=58) 
    begin 
    set @number=65 
    end 
    if(@number=91) 
    begin 
    set @number=97 
    end 
    end 
    while @maco_number<@mycount 
    begin 
    select @my_two=id from @maco_wang 
    order by (select MacoId from dbo.vnewid ); 
    set @my_one=@my_two+@my_one; 
    set @maco_number=@maco_number+1; 
    end 
    return @my_one 
    end 
    --测试用例 
    select [dbo].[m_rand](75) 
    --运行结果 
    /* 
    5nN0w4o4VOkjacB5so2uvCuw2ZRrnBhxEi4IcsEOHzBbStKmR1p8ASH4N4XaxhDoDEtkX8bZ0CR 
    */

     
    declare 
    @i int
    set @i=1
    while @i <=100000
    begin
    insert into tbl_A select [dbo].[m_rand](5)
    set @i=@i+1
    end

     update tbl_C set UserPass=tbl_D.UserName from tbl_C,tbl_D where tbl_D.UserName=tbl_C.UserName 

  • 相关阅读:
    【20210930】连岳摘抄
    【20211002】连岳摘抄
    网站首页head区代码规范(网页设计师必看)
    让你的VMware Workstation随主系统自动启动
    asp中使用图片验证码的方法
    文本筐怎样让它只能输入数字(以及怎么只能输入一个小数点和数字)
    asp通用分页函数
    系统安装秘技:精心打造WinXP万能GHOST(图)
    asp调用存储过程
    在 win2k3 下安装 webeasymail
  • 原文地址:https://www.cnblogs.com/hofmann/p/7997695.html
Copyright © 2020-2023  润新知