之乎者也,阿弥陀佛

软件设计的原则就是,化繁为简,化难为易,把人的思维集中在简单的领域,然后通过有序的组合实现复杂的逻辑。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

 

发现最简便的方式还是:

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

 

 

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

先建立视图:

代码
/****** 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)
 
      

 

 

 

posted on 2011-02-18 18:49  搏击的小船  阅读(918)  评论(0编辑  收藏  举报