表A :  name_a  code_a
        李       li
        王      wang
        张      zhang
        赵      zhao表B : name_b   code_b
        王        NULL
        王        NULL
        张        NULL想把表B的code_b字段按 名字 自动添加成 表A 对应的code
如这个效果  name_b   code_b
             王        wang
             王        wang
             张        zhang想UPDATE 表B ,但是老报错。请教大家了。。

解决方案 »

  1.   

    create table 表A(name_a nvarchar(10),code_a varchar(10))
    insert into 表A select '李','li'
    insert into 表A select '王','wang'
    insert into 表A select '张','zhang'
    insert into 表A select '赵','zhao'
    create table 表B(name_b nvarchar(10),code_b nvarchar(10))
    insert into 表B select '王',NULL
    insert into 表B select '王',NULL
    insert into 表B select '张',NULL
    go
    update b set code_b=a.code_a from 表B b inner join 表A a on a.name_a=b.name_b
    select * from 表b
    /*
    name_b     code_b
    ---------- ----------
    王          wang
    王          wang
    张          zhang(3 行受影响)
    */
    go
    drop table 表A,表B
      

  2.   

    update a set code_b=(select code_a from 表A where name_a=a.name_b)
    from 表B a
      

  3.   


    update b set code_b=a.code_a
    from a 
    where a.name_a=b.name_b
      

  4.   

    update 表B set code_b=a.code_a from 表B b 
    inner join 表A a on a.name_a=b.name_b
      

  5.   


    udpate B set B.code_b=A.code_a from A,B where A.name_a=B.name_b
      

  6.   

    update b set b.code_b=(select a.code_a from a where a.name_a=b.name_b)
      

  7.   

    [code=SQL]
    create table #TA
    (name_a varchar(10) null default '',
     code_a varchar(10)  null default ''
    )insert into #TA 
    select '李','li'
    union
    select '王','wang'
    union
    select '张','zhang'
    union
    select '赵','zhao'
    create table #TB
    (name_b varchar(10) null default '',
     code_b varchar(10) null default ''
    )insert into #TB 
    (name_b,code_b)
    select '王',NULL
    union
    select '王',NULL
    union
    select '张',NULL
    go
    update  set code_b=a.code_a from #TB b inner join #TA a on a.name_a=b.name_b
    select * from #Tb[code]
      

  8.   


    update 表B
    set code_b=code_a
    form 表A,表B where name_a=name_b
      

  9.   

    update b set code_b=a.code_a from 表B b inner join 表A a on a.name_a=b.name_b
      

  10.   

    update 表B set code_b=a.code_a from 表B b inner join 表A a on a.name_a=b.name_b