--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.m_macoview);

set @my_one=@my_two+@my_one;

set @maco_number=@maco_number+1;

end

return @my_one

end

--测试用例

select [dbo].[m_rand](75)

--运行结果

/*

5nN0w4o4VOkjacB5so2uvCuw2ZRrnBhxEi4IcsEOHzBbStKmR1p8ASH4N4XaxhDoDEtkX8bZ0CR

*/

生成n位随机字符串的更多相关文章

  1. php 生成32位随机字符串 用于支付验证 用户注册

    //32位随机字符串 function randstrpay($length=32) { $rand=''; $randstr= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567 ...

  2. Python生成8位随机字符串的一些方法

    #第一种方法 import random import string seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP ...

  3. 七.生成n位随机字符串

    --1.借助newid() go --创建视图(因为在函数中无法直接使用newid()) create view vnewid as select newid() N'MacoId'; go --创建 ...

  4. SQL生成n位随机字符串

    --1.随着newid() go --创建一个视图(因为不能在功能直接用于newid()) create view vnewid as select newid() N'MacoId'; go --创 ...

  5. python生成随机数、随机字符串

    python生成随机数.随机字符串 import randomimport string # 随机整数:print random.randint(1,50) # 随机选取0到100间的偶数:print ...

  6. java生成6位随机数字

    //生成6位随机数字 System.out.println((int)((Math.random()*9+1)*100000)); //生成5位随机数字 System.out.println((int ...

  7. Java生成8位随机邀请码,不重复

    public static String[] chars = new String[] { "a", "b", "c", "d&q ...

  8. UUID 生成32位随机串

    java通过jdk自带的UUID,生成32位的随机串 private static String generate_UUID() { UUID uuid=UUID.randomUUID(); Stri ...

  9. excel中生成32位随机id

    记录下如何在EXCEL中利用公式生成32位的随机id(无符号,只有数字和小写字母). ,,)),),"",DEC2HEX(RANDBETWEEN(,,)),),"&quo ...

随机推荐

  1. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)

    *********************************************************************** * Title           : ZSDF003  ...

  2. codeforces Educational Codeforces Round 5 A. Comparing Two Long Integers

    题目链接:http://codeforces.com/problemset/problem/616/A 题目意思:顾名思义,就是比较两个长度不超过 1e6 的字符串的大小 模拟即可.提供两个版本,数组 ...

  3. 【python】sql语句插入中内容同时包含单引号和双引号的解决办法

    在python中调用MySQLdb模块插入数据信息,假设待输入信息data为: Hello'World"! 其中同时包含了单引号和双引号 一般插入语句为 sql = "insert ...

  4. 让ar执行queryall和queryrow方法返回数组

    让ar执行queryall和queryrow方法返回数组 <?phpnamespace common\components;use \CActiveRecord;use \Yii;use \CD ...

  5. 根据OSG中的ref_ptr和Reference简化的智能指针

    main.cpp测试代码 #include "TestSmartPointer" void fun() { SP<TestSmartPointer> sp1=new T ...

  6. jQuery - 4.简单选择器

    4.1 简单选择器   (1) :first 选取第一个元素.   (2) :last 选取最后一个元素.  (3) :not(选择器) 选取不满足"选择器"条件的元素   (4) ...

  7. APP消息推送:通知和透传

    目前市场上的消息推送方式有两种:通知和透传.什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理.透传消息, ...

  8. 重温WCF之一个服务实现多个契约(二)

    public class ServiceImp : IService1,IService2,IService3 { public string SayHelloA() { return "你 ...

  9. Delphi中uses在interfeace和implementation中的区别

    use单元引入分为在interface中引入,如 interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Co ...

  10. My97DatePicker使用技巧

    My97DatePicker使用是很常用的控件,总结一下常用使用技巧: 1.onpicked是事件,也就选择日期之后触发事件: 2.isShowClear:是否显示清理按钮: 3.maxDate:最大 ...