您的位置:首页 > 数据库

关于SQL生成随机字符串

2011-02-18 18:49 253 查看
利用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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: