关于SQL生成随机字符串

利用SQL生成随机字符串,在网上搜索了一下,各人有各人的实现方式,不过简单实用的实在是少。

 

发现最简便的方式还是:

select NEWID();
-- 或者
select RIGHT(NEWID(),
7 );

 

 

在网上查看到的另外一种方式(很费事的说):

先建立视图:

ExpandedBlockStart.gif 代码
/* ***** Object:  View [dbo].[View_Rand]    Script Date: 02/18/2011 18:48:05 ***** */
-- 第一步,创建视图
CREATE VIEW [dbo].[View_Rand]
AS
SELECT RAND() AS frand
GO



-- 自定义的随机函数
Create FUNCTION [dbo].[Random] 
(
 @n 
int
)
RETURNS 
int
AS
BEGIN
 select @n
= @n * frand from dbo.View_Rand
 RETURN @n
END


--  Description:     < 随机字符串, , >
Create FUNCTION [dbo].[RandString] 
(
 @m 
int
)
RETURNS varchar(
8000 )
AS
BEGIN
 DECLARE @l 
int ,@i  int ,@r varchar( 8000 ),@s varchar( 8000 )

 
set  @l = 0
 
set  @r = ''
 
while  @l < @m
 begin
  
set  @i = @m / 10 + dbo.Random(@m * 9 / 10 ) + 1
  
if  @i + @l > @m
    
set  @i = @m - @l
  
set  @s = space(@i)
  
set  @s = replace(@s, '   ' , char ( 33 + dbo.Random( 90 )))
  
set  @r = @r + @s
  
set  @l = @l + @i
 end
 RETURN @r
END


-- 测试
select dbo.RandString(
10 )
 
      

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值