--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. iOS开发学习网站汇总

    *本文转自CocoaChina 原文:11 Insanely Great iOS Developers Sites永不止步地向他人学习 我相信,要想从一个"还不错"的人变成一个卓越 ...

  2. 【关于服务器端SQL Server 2008的设置】 使其他客户端机可通过ODBC数据源可访问

    服务器系统:Server 2003 数据库:SQL Server 2005 服务器配置:开启服务:server.workstation(这两个服务对于提供局域网共享有很大作用) 关闭防火墙 开启gue ...

  3. Linux rpm 命令参数使用详解[介绍和应用]

    RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两 ...

  4. 将txt多行文本合并成一行

    1.用word打开txt文本2.打开“替换”功能,查找内容“^p”,替换内容为“,”(均无双引号).即可把多列文字合并为一行.

  5. DO语句与SELECT语句,HANDLER语句

    DO语句,只执行语句不返回结果:SELECT 既执行语句也返回结果. HANDLER的效率会更好. HANDLER 语句比SELECT 语句更快: 1,HANDLER只需OPEN一次,能重用,不须每次 ...

  6. C#实现http协议下的多线程文件传输

    用C#实现HTTP协议下的多线程文件传输转自  http://developer.51cto.com/art/201105/263066_all.htm C#(C Sharp)是微软(Microsof ...

  7. js 闭包原理理解

    问题?什么是js(JavaScript)的闭包原理,有什么作用? 一.定义 官方解释:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 很显然 ...

  8. Java -- 访问控制

    原文:http://www.cnblogs.com/diyingyun/archive/2011/12/21/2295947.html 可见/访问性 在同一类中 同一包中 不同包中  同一包子类中  ...

  9. JavaScript Canvas 根据像素点取位置

    <html> <body> <canvas id="canvas" width="100" height="100&qu ...

  10. SQL语法中的JOIN类型

    这个要弄明白哟..CROSS JOIN, NATURAL, INNER JOIN ,LEFT OUTER JOIN(LEFT JOIN) 等等....带LEFT,RIGHT的必为OUTER,所以OUT ...