请问如何由程序自动生成20位的随机字符串,由0~9和字母A~Z组成,大约100000个,保存在sql的一张表中。
比如。
DBGFD52398GTREW230254
5239852398GTREW230254
等等……请问大家如何实现速度会比较快?

解决方案 »

  1.   

    还是用sql 的newid()生成guid比较好select newid()
    --48B80B3E-32D8-4E00-B17B-E1A3D205474A
      

  2.   

    dim newid as string,i as integer,c as integernewid=""
    for i=1 to 20
      c=int(rnd()*37)
      if c<=9 then
        newid=newid & c
      else
        newid=newid & chr(asc("A")+c-10)
      end if
    next i
      

  3.   

    dim newid as string,i as integer,c as integer楼上的出现了 差1 错误,改正如下:newid=""
    for i=1 to 20
      c=int(rnd()*36) '应该是36,而不是37
      if c<=9 then
        newid=newid & c
      else
        newid=newid & chr(asc("A")+c-10)
      end if
    next i
      

  4.   

    谢谢大家,问题解决了一半。 20位的随机字符串可以生成了? 但如何保证生成的不重复?要插入到sql表中,应该不用每次插入都比较吧,这样效率也太低了吧。
      

  5.   

    sql本身就提供了解决方法,不要自作聪明搞了,把字段默认值设置为newid()
      

  6.   

    sql本身就提供了解决方法,不要自作聪明搞了,把字段默认值设置为newid()能否再说的详细些?还是不大明白。
      

  7.   

    NewID()可以按照我的要求要几位就生成几位吗?不大明白具体的操作方法……