大批量生成随机数的问题

jjennyj 2004-07-20 11:47:09
我要根据需求随机产生大批量随机数,长度为25位,不过前5位是产品代码无需随机产生,一次需要产生10,000条,还不可以重复。大家给点思路,
...全文
342 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
echo 2004-07-20
  • 打赏
  • 举报
回复
你自己想一下编码规则,写成存储过程,在数据库中记录当前值.需要生成的时候运行存储过程
windindance 2004-07-20
  • 打赏
  • 举报
回复
-_-|
把十六进制数转10进制不简单吗?
>>取前20位, 能保证唯一吗?
不能保证唯一,但重复的几率非常非常非常小。
Limperator 2004-07-20
  • 打赏
  • 举报
回复
复楼主:
select newid()是绝对不会重复的
Limperator 2004-07-20
  • 打赏
  • 举报
回复
请教楼上:
1.如果取前20位, 能保证唯一吗?
2.uniqueidentifier 类型的形式 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字, 如何取前20位数字?
jjennyj 2004-07-20
  • 打赏
  • 举报
回复
我要不要每生成一个都到数据库验证一下是否有重复呀,那样工作量太大了
Limperator 2004-07-20
  • 打赏
  • 举报
回复
为何不用 uniqueidentifier 类型?
select newid()
windindance 2004-07-20
  • 打赏
  • 举报
回复
declare @i int
set @i=0
while @i<10000
begin
select newid()
set @i = @i +1
end
根据GUID产生你的随机数,这是128位的数字,取前20位即可。
jjennyj 2004-07-20
  • 打赏
  • 举报
回复
数据转化的问题我查以前的帖子解决了,谢谢大家
jjennyj 2004-07-20
  • 打赏
  • 举报
回复
是得到了,可我怎么转换成10进制的?
jjennyj 2004-07-20
  • 打赏
  • 举报
回复
谢谢,大家,我的基础挺差,看起来挺费劲。让我一点,一点消化一下
zjcxc 2004-07-20
  • 打赏
  • 举报
回复
--这样写,10000就再加下去,不过注意,这样并不能保证一次性生成1万条,需要在插入后判断,如果不够再加.

select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
union
select top 100 left(newid(),20) from syscolumns
CSDMN 2004-07-20
  • 打赏
  • 举报
回复
少了一句:

drop table #t

同时请关注(奇怪的newid):http://community.csdn.net/Expert/topic/3192/3192023.xml?temp=.7962152
CSDMN 2004-07-20
  • 打赏
  • 举报
回复
一楼1条1条的方法效率不高,建议

--产生超过10000条的临时表
select a.*
into #t
from sysobjects a,sysobjects b,sysobjects c

insert 你的表(你的字段)
select distinct top 10000 '你的前五位'+left(newid(),20) from #t

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧