要求:用户名和密码为字符
名以admin打头,密码以pwd打头

解决方案 »

  1.   

    用存储过程应该不难啊。有随机的函数。然后随机出来后就把admin,pwd放到前面就行了。循环100次不就是100个了吗?
      

  2.   

    CREATE PROCEDURE [dbo].[CreateRandUser] 
    AS--生成随机用户名密码 
    --创建测试环境
    set  nocount  on--创建字符集
    create  table  #1
    (
        [rnum]  varchar(5)
    )
    declare  @i  int
    set  @i=0--  插入0-9十个数字,不需要数字可注释下面代码
    while  @i<10
    begin
              insert  #1  select  @i
              set  @i=@i+1
    end
    -----------------------------------------------------
    --插入A-Z  26个字母
    set  @i=ascii('A')
    while  @i<=ascii('Z')
    begin
              insert  #1  select  char(@i)
              set  @i=@i+1
    end
    --创建目标表存储结果
    create  table  Result
    (
        ID  int  identity,username  varchar(50),pwd  varchar(50),
    )--插入数据
    declare  @tmpuser  varchar(100)
    declare  @tmppwd  varchar(100)
    select  @tmpuser='',@tmppwd='',@i=1
    while  @i<=100                --生成100条结果集
    begin
              select  @tmpuser=@tmpuser+rnum  from  (select  top  5  rnum  from  #1  order  by  newid())A  
              select  @tmppwd=@tmppwd+rnum  from  (select  top  5  rnum  from  #1  order  by  newid())A  
              insert  Result(username,pwd)  select  'admin_'+@tmpuser,'pwd_'+@tmppwd
              set  @i=@i+1
              set  @tmpuser=''
              set  @tmppwd=''
    end--  查看
    select  *  from  Result--删除测试环境
    drop  table  #1
    GO
      

  3.   

    --示例
    --数据表
    create table #t(admin char(50),pwd varchar(50))--生成数据
    insert #t
    select top 100 admin='admin'+replace(newid(),'-',''),pwd='pwd'+replace(newid(),'-','')
    from syscolumns a,syscolumns b--显示结果
    select * from #t--删除测试
    drop table #t
      

  4.   

    --如果需要限制长度,则改为如下,以下限制长度为20--示例
    --数据表
    create table #t(admin char(50),pwd varchar(50))--生成数据
    insert #t
    select top 100 admin=left('admin'+replace(newid(),'-',''),20),pwd=left('pwd'+replace(newid(),'-',''),20)
    from syscolumns a,syscolumns b--显示结果
    select * from #t--删除测试
    drop table #t