哎!delete from tbinsert into tb
select * from ta

解决方案 »

  1.   

    insert into TB select * from tA where 主键 not in  (select 主键  from TB)
      

  2.   

    delete from tb a where exists (select * from ta b where a.主键=b.主键)
    insert tb
    select * from ta
      

  3.   

    update TB
    set 字段1=TA.字段1
        .......
    from TB
    where exists(select 1 from TA where 主键=TB.主键)insert TB
    select * from TA
    where not exists(select 1 from TB where 主键=TA.主键)
      

  4.   

    delete是肯定不行的,呵呵,因为有很多的主外键关联的, lizhaogui() 的方法是可行的,主要的是Update语句了,由于字段比较多,呵呵,想问问有没有简单一点儿的在目的表中更新,也就是说有没有办法可以把TA表中在TB表中已经存在的记录完全复制过来~~
      

  5.   

    vivianfdlpw():你的第一条的Update语句好像不正确哦,呵呵,我是这样写的,还是报错~~ UPDATE CTArchives 
    SET ID = #tmp_CTArchives.ID
    FROM CTArchives
    WHERE EXISTS (SELECT 1 FROM #tmp_CTArchives WHERE ID = CTArchives.ID)
    报的错误是:列前缀 '#tmp_CTArchives' 与查询中所用的表名或别名不匹配。
      

  6.   

    UPDATE CTArchives 
    SET ID = #tmp_CTArchives.ID
    FROM CTArchives,#tmp_CTArchives
             where ...
    及联更新,From后面要写两个表
      

  7.   

    漏掉了:update TB
    set 字段1=TA.字段1
        .......
    from TB
    join TA on TA.主键=TB.主键
    where exists(select 1 from TA where 主键=TB.主键)
      

  8.   

    update TB
    set 字段1=TA.字段1
        .......
    from TB
    join TA on TA.主键=TB.主键