说明:生成一个自定义位数的密码,密码可能由以下元素随机组合而成
一:0,1,2,3,4,5,6,7,8,9
二:a到z(小写)
三:A到Z(大写)
四:!,@,#,$,^,&,*,(,),_,+
使用方法:select(print) dbo.getpwd(密码位数)
代码:
CREATE
FUNCTION
fn_GetPwd(@count int)
RETURNS
varchar(8000)
AS
begin
declare
@temp table
(
id int
identity
primary
key,
pwd char(1)
)
declare @i
int,@sql varchar(1000)
set @i =
0
while @i
< 10
begin
insert
into @temp select
ltrim(@i)
set
@i = @i + 1
end
set @i =
65
while @i
< 91
begin
insert
into @temp select
char(ltrim(@i))
set
@i = @i + 1
end
set @i =
97
while @i
< 123
begin
insert
into @temp select
char(ltrim(@i))
set
@i = @i + 1
end
insert
into @temp
select
'!'
union all
select
'@'
union all
select
'#'
union all
select
'$'
union all
select
'%'
union all
select
'^'
union all
select
'&'
union all
select
'*'
union all
select
'('
union all
select
'_'
union all
select
'+'
union all
select
'~'
declare @s
varchar(8000)
set @i =
0
while @i
< @count
begin
select
top
1 @s = isnull(@s, '') + pwd from @temp order by (select * from vi_getnewid)
set
@i = @i + 1
end
return @s
end
go
CREATE view V_getnewid
AS
select
newid() AS rand_id
go
select
dbo.GetPwd(
16
)
结果:
Re~IWVYLe3s%#Tqo
