表TB为空,有5个字段,想从表b1、b2、b3、b4、b5中各取一列值复制到表TB中,INSERT INTO TB 
SELECT b1.b1, b2.b2,  b3.b3,  b4.b4,  b5.b5
FROM b1 CROSS JOIN b2,b3,b4,b5用这个命令好长时间也没出来结果,并且中止这个命令后再用
SELECT * FROM TB
或DELETE TB也是老长时间没执行完。
想问问各位大虾上面的命令对不对,再有没有别的快点的方法可实现。先谢谢!!

解决方案 »

  1.   

    重启下SQL服务,删除掉TB表中的数据,重新插入insert into tb
    select *
    from(
    select ...from b1
    union all
    select ...from b2
    union all
    select ...from b3
    union all
    select ...from b4
    union all
    select ...from b5
    )t
      

  2.   

    1000的5次方我都不会读。
    select ltrim(number)+'b1' as number into b1 from master..spt_values where type='p' and number<1000
    select ltrim(number)+'b2' as number into b2 from master..spt_values where type='p' and number<1000
    select ltrim(number)+'b3' as number into b3 from master..spt_values where type='p' and number<1000
    select ltrim(number)+'b4' as number into b4 from master..spt_values where type='p' and number<1000
    select ltrim(number)+'b5' as number into b5 from master..spt_values where type='p' and number<1000select top 10000 * from b1 
    cross join b2 
    cross join b3 
    cross join b4
    cross join b5
    where b1.number>b2.number and b2.number>b3.number 
    and b3.number>b4.number and b4.number>b5.number
    /*
    number         number         number         number         number
    -------------- -------------- -------------- -------------- --------------
    2b1            1b2            10b3           100b4          0b5
    2b1            1b2            10b3           104b4          102b5
    2b1            1b2            10b3           104b4          103b5
    2b1            1b2            10b3           105b4          0b5
    ...
    2b1            1b2            13b3           12b4           118b5
    2b1            1b2            13b3           12b4           119b5
    2b1            1b2            13b3           12b4           120b5
    2b1            1b2            13b3           12b4           121b5
    ...
    2b1            1b2            17b3           138b4          112b5
    2b1            1b2            17b3           138b4          113b5
    2b1            1b2            17b3           138b4          114b5
    2b1            1b2            17b3           138b4          115b5
    ...
    2b1            1b2            17b3           149b4          146b5
    2b1            1b2            17b3           149b4          147b5
    2b1            1b2            17b3           149b4          148b5
    2b1            1b2            17b3           150b4          0b5(10000 row(s) affected)*/