表A中有字段姓名,表B中也有字段姓名,如何执行SQL语句使A表中的所有姓名都插入到B表中?

解决方案 »

  1.   

    我记得好像是insert into B(姓名) select 姓名 from A但是这样只能更新姓名一列,我想更新其他列的话语句该怎么写?
      

  2.   

    insert b (f1,f2,f3) select f1,f2,f3 from a
    f1,f2,f3代表你表中的字段名. 需要个数相同,且对应字段类型相同(或可进行隐式转换)
      

  3.   

    但是如果B表中的其他需要更新的字段在A表中并不存在,怎么办?
    例如:我需要更新B表中(f1,f2,f3),其中f1在A表中存在,而f2,f3在A表中并不存在
      

  4.   

    你是要更新b表记录的值,还是要从a中往b中加记录?
      

  5.   

    那要看你b中其它字段写什么值了.
    如果数据表设置有默认值,那么直接
    insert b(f1) select f1 from a
    就可以了,其它字段会用默认值填充.如果你不需要其它值,字段又允许null的话,那么直接写null
    insert b(f1,f2,f3) select f1,null,null from a如果你不想写null,要手工给f2,f3两字段写其它值,那么写常量就可以了insert b(f1,f2,f3) select f1,0,0 from a
    这里,我设你的f2,f3为int型或decimal或numeric,money或是char,varchar类型,或datetime.