将表2的id和表1的id相同的记录,用表2的记录覆盖表1中的记录,
表1:  
id   name age
 1      cc     10
 2      jj        11
 3     nn       14
表2:
id   name age
2       ww     18
3         tt        15得到结果:
id   name age
 1      cc     10
2       ww     18
3         tt        15          语言表达能力不够,不知道描述清楚没有……
请各位高手指教!

解决方案 »

  1.   

    update tb1
    set tb1.name=tb2.name ,tb1.age=tb2.age
    from tb2
    where tb1.id=tb2.id
      

  2.   

    更新前先备份一下表,比如select * into Backup_TB from tb
      

  3.   

    update t1
    set t1.name=t2.name,t1.age=t2.age
    from t1,t2
    where t1.id=t2.id
      

  4.   

    谢谢大侠指教!
    不过我运行的时候显示 Near “.”:syntax error Unable to execute statement哪里错了呀?
      

  5.   

    报错的就这个提示 Near “.”:syntax error Unable to execute statement
    我用的sqlite在sql browser查询语句编辑框里执行的,报了在“.”附近有错误
    还请高手多指点 ,感激不尽啊!
      

  6.   

    我是说源代码,不是错误信息。另外sqlite和T-SQL不是完全兼容
      

  7.   

    没有源代码呀 就执行了一下这个SQL语句
      

  8.   

    那你贴出“这个SQL语句”是哪句?我只想知道导致报错的具体是哪句,不要说那么多,贴语句可以不?
      

  9.   

    就执行的:
    update t1
    set t1.name=t2.name,t1.age=t2.age
    from t1,t2
    where t1.id=t2.id
      

  10.   


    update t1
    set t1.name=t2.name,t1.age=t2.age
    from t2
    where t1.id=t2.id
      

  11.   

    update t1
    set t1.name=t2.name,t1.age=t2.age
    from t2
    where t1.id=t2.id
    也还是说点附近有错误
    刚刚查了一下说sqlite 的update 不支持别名  ,是不是这个原因呢
      

  12.   

    改成这样就可以运行了:
    update t1 
    set name=(select name from t2 where id=t1.id),
    age=(select age from t2 where id=t1.id);运行结果:
    id   name age
     1      
    2       ww     18
    3         tt        15   
    将t2中的数据复制到了t1中,但是t2中没有的id,就把t1中的数据清空了
      

  13.   

    sqlite确实有点变态:update t1 
    set name=(select name from t2 where id=t1.id),
    age=(select age from t2 where id=t1.id)
    where t1.id=(select id from t2 where t1.id=t2.id)