/*
SQL SERVER 随机字符串;
f_random(@length): 返回指定长度且由0~9和A~Z组成的随机字符串.
zaorv;
2018-11-25
由于SQLSERVER在自定义函数中不能使用RAND()函数,故借随机视图使用随机函数RAND();
*/
if object_id('v_random','v') is not null
drop view v_random;
go
create view v_random
as
select rand() as random ;
go
select * from v_random;
if object_id('f_random','fn') is not null
drop function f_random;
go
create function dbo.f_random(@length int)
returns nvarchar(200)
as
begin
declare @result nvarchar(200);
declare @i int,
@random int;
set @result = '';
set @i = 0 ;
while @i < @length
begin
select @random = ceiling(random*100) from v_random ;
if (@random between 48 and 57 ) OR (@random between 65 and 90)
begin
SET @result = @result + nchar(@random)
set @i= @i + 1
end
end;
return (@result);
end
go
/*测试随机字符串函数*/
select dbo.f_random(5) as random
go
/*
返回:
SIB5N
*/