生成完之后再检索有没有重的效率低下,最好是在生成随机数的时候的确保种子不重复。

解决方案 »

  1.   

    个人想法,先生成一批数据后再在数据库里检索,把所有一样的都找出来删掉
      

  2.   

    那你还不如用一个算法来生成一个随机数数组,然后每次按顺序往数据库里插值。不过如果数据量很大的话就没什么好办法了,毕竟只是4位长的字符串
      

  3.   

    方法一 先生成足够多的慢慢用
    select distinct   top 10000 left(newid(),4) into 新表 from  sysobjects a,sysobjects b
    用一条删一条. sysobjects是系统表,也可以是你库中任一一个表,记录越多越好,如果超过1W,也就是超过你的TOP数,就不用加两个表来查讯了
      
    方法二   (需要测试是否能用)
    设计T1表,id设为索引不重复,默认值:left(newid(),4)
      

  4.   

    既然是随机的,就不能保证唯一
    先检查一下是否已用也是可以的。4位字母数字组合也没有多少 36!/(4!*(36-4)!)
    做好索引也并不慢。只是很快就会满了