create table #t(
a varchar(6),
b varchar(8)
)
insert into #t select top 1000 left(newid(),6),left(newid(),8) from sysobjects a,sysobjects b
select * from #t
drop table #T

解决方案 »

  1.   

    楼上的不严谨,那样有可能重复的
    select top 1000 left(col,6) a,identity(int,1,1) id into #ta from
    (select replace(newid(),'-','') col from sysobjects a,sysobjects b) t
    group by left(col,6)
    select top 1000 left(col,8) b,identity(int,1,1) id into #tb from
    (select replace(newid(),'-','') col from sysobjects a,sysobjects b) t
    group by left(col,8)select #ta.a,#tb.b from #ta,#tb where #ta.id=#tb.id
    drop table #ta,#tb
      

  2.   

    --这样写不会重复:
    create table #t(
    a varchar(6),
    b varchar(8),
    c varchar(8)
    )
    insert into #t (a,b,c) select distinct top 1000 left(newid(),6),left(newid(),8),b.a from sysobjects a,(select 'a' as a from sysobjects) b
    select a,b from #t
    drop table #T
      

  3.   

    原来还有更简单的:
    select distinct top 1000 left(newid(),6) a,left(newid(),8) b
     from sysobjects a,sysobjects b
      

  4.   

    为啥要 from sysobjects a,sysobjects b?
      

  5.   

    declare @tb table (a char (6),b char(8))
    declare @counter int
    set @counter=0
    while @counter<1000
    begin
    insert into @tb select left(newid(),6) ,left(newid(),8)
      set @counter=@counter+1
    end
    select * from @tb