注册 登录
编程论坛 SQL Server论坛

用户名是随机长度的随机字符串出现

good_good_study 发布于 2007-12-15 18:08, 1304 次点击
Declare @TempInt int
Set @TempInt=1
While @TempInt<100
Begin
insert into changying(userName)values('abcd')
Set @TempInt=@TempInt+1
End
go
我现在要把“abcd”变成一个随机的字符串
帮一下忙啊
4 回复
#2
purana2007-12-15 19:06
declare @t table(userName varchar(100))

Declare @TempInt int,@value varchar(100)
Set @TempInt=1

While @TempInt<100
Begin
    set @value=char(cast(rand()*26 as int)%26+97)
    insert into @t (userName) values(@value)
    Set @TempInt=@TempInt+1
End

select * from @t

--随机长度的..自己去考虑.
#3
orliubc2007-12-16 19:31
cast(rand()*26 as int)%26+97

这是怎么运算的,想不开哎
#4
orliubc2007-12-18 12:37
cast(rand()*100 as int)%30

purana在吗?  麻烦你帮我解释下上面句子的返回值啊,%30 是怎么算的?
急啊!! 谢谢啊
#5
关小彤2007-12-25 09:29
char(cast(rand()*26 as int)%26+97)
我是这样理解的:)
因为有26个字母,所以和26有关
(rand()*26 as int )%26产生一个从0-26的随机整数,因为a的ASCII码是97,所以要加上97。

就能够得到你想要的

[[italic] 本帖最后由 关小彤 于 2007-12-25 09:31 编辑 [/italic]]
1