有两个数据库DB1,DB2,其实DB2是DB1的备份还原库,现在的情况是DB1中的tb1部分字段数据不正确,需要从DB2中的tb2中的读取出来,根据tb2中的数据,将DB1中的tb1中的数据修改成正确的。想直接通过sql完成此项工作,应该如何实现呢?

解决方案 »

  1.   

    --删除原表数据
    truncate table DB1.dbo.tb1
    --从备份插入
    insert DB1.dbo.tb1 select* from DB2.dbo.tb1
      

  2.   

    update a set a.x = b.x 
    from DB1..tb1 a, DB2..tb2 b
    where a.y = b.y
      

  3.   


    ---在DB1中執行
    update t1
      set t1.字段=t2.字段
    from tb1 t1,
         DB2.dbo.tb2 t2
    Where t1.id=t2.id
      

  4.   

    cd731107的方法不可行呢。 备注说明:DB1数据库一直在用着,每天都在往库中录入数据,是不能随便删除的。
      

  5.   

    update db1.db.tb set db1.c1=db2.c1  ...
    from db1.dbo.tb 
    left join db2.dbo.tb  on db1.dbo.tb.id=db2.dbo.tb.id
      

  6.   

    如果表有主键id,这样操作
    delete from  DB1.dbo.tb1 where id in (select id from DB2.dbo.tb1)  
    --从备份插入
    insert DB1.dbo.tb1 select * from DB2.dbo.tb1