先把兩個表的數據分別存入兩入臨時表#tmpa 和 #tmpb,select identity(int,1,1) as id ,  * into #Tmpa from table1 
select identity(int,1,1) as id ,  * into #Tmpb from table2 
然後再
select A.Art_ID ,B.Art_UserName ,B.Art_Account
into Newtable from #Tmpa A inner join #Tmpb B on A.id = B.id

解决方案 »

  1.   

    select identity(int,1,1) ID,* into #1 from table1
    select identity(int,1,1) ID,* into #1 from table2select a.Art_ID,  b.Art_UserName,   b.Art_Account
    from #1 a join #2 b on a.id=b.id
      

  2.   

    -- 如果你的两个表中记录没有完全重复,你也可以用以下的方法,这里也只是给你提供另外的思路,不一定好,你可以参考一下:CREATE TABLE t1(Art_ID int)
    INSERT t1 
    SELECT   6
    UNION ALL SELECT 7
    UNION ALL SELECT 8
    UNION ALL SELECT 9
    UNION ALL SELECT 11CREATE TABLE t2(Art_UserName varchar(20),Art_Account varchar(20))
    INSERT t2
    SELECT    'Lisa',          'guesta'
    UNION ALL SELECT 'Linda',         'guestb'
    UNION ALL SELECT 'Mike',          'guestc'
    UNION ALL SELECT 'Kenny',         'guestd'
    UNION ALL SELECT 'Ive',           'gueste'SELECT * FROM t1
    SELECT * FROM t2SELECT Art_ID,Art_UserName,Art_Account
    FROM
    (
    SELECT 
    (SELECT COUNT(*) FROM t1 WHERE Art_ID <= a.Art_ID) 
    numt1,
    * FROM t1 a
    ) a
    INNER JOIN
    (
    SELECT 
    (SELECT COUNT(*) FROM t2 WHERE 
    (Art_UserName <= a.Art_UserName) 
    OR
    (Art_UserName = a.Art_UserName AND Art_Account <= a.Art_Account)) 
    numt2,
    * FROM t2 a 
    ) b
    ON a.numt1 = b.numt2
    ORDER BY Art_IDDROP TABLE t1,t2
      

  3.   

    可以用楼上老兄说的方法!
    select identity(int,1,1) ID,* into #1 from table1
    select identity(int,1,1) ID,* into #1 from table2select a.Art_ID,  b.Art_UserName,   b.Art_Account
    from #1 a join #2 b on a.id=b.id
      

  4.   

    先把Art_ID插入新表,然后两重游标循环
      

  5.   

    只能用临时表处理
    gmlxf(烛光)的办法在两个表中的数据不重复时可行
    但记录顺序就可能对不上.所以唯一的办法还是用临时表来处理.
      

  6.   

    同意zjcxc(邹建)的说法,只能用临时表的办法
      

  7.   

    select * from (select identity(int,1,1) as id ,  *  from table1 ) a ,
    (select identity(int,1,1) as id ,  * from table2 ) b where a.id = b .id
      

  8.   

    select identity(int,1,1) as id ,  *  from table1 
    ---
    没有这样的语法。
      

  9.   

    -- 以下一个临时表,但是还是推荐用楼上的两个临时表处理,但这也是一种方法。原理还是类似。
    CREATE TABLE t1(Art_ID int)
    INSERT t1 
    SELECT   6
    UNION ALL SELECT 7
    UNION ALL SELECT 8
    UNION ALL SELECT 9
    UNION ALL SELECT 11CREATE TABLE t2(Art_UserName varchar(20),Art_Account varchar(20))
    INSERT t2
    SELECT    'Lisa',          'guesta'
    UNION ALL SELECT 'Linda',         'guestb'
    UNION ALL SELECT 'Mike',          'guestc'
    UNION ALL SELECT 'Kenny',         'guestd'
    UNION ALL SELECT 'Ive',           'gueste'SELECT * FROM t1
    SELECT * FROM t2CREATE TABLE #T(ID int IDENTITY(1,1),Art_ID int,Art_UserName varchar(20),Art_Account varchar(20))
    INSERT #T(Art_ID) SELECT * FROM t1
    INSERT #T(Art_UserName,Art_Account) SELECT * FROM t2SELECT 
    Art_ID
    ,Art_UserName = ISNULL(Art_UserName,(SELECT Art_UserName FROM #T WHERE ID = a.ID + (SELECT COUNT(1)/2 FROM #T)))
    ,Art_Account = ISNULL(Art_Account,(SELECT Art_Account FROM #T WHERE ID = a.ID + (SELECT COUNT(1)/2 FROM #T)))
    FROM #T a WHERE Art_ID IS NOT NULLDROP TABLE t1,t2,#T