假如有两张表A、B
A中有两列数据,列名分别是BH1、201005(列201005为空)
B中有两列数据,列名分别是BH2、ggg(列ggg中有值)
A中BH1等于B中BH2时,要使A中201005取B中ggg的值,如何实现?

解决方案 »

  1.   

    update a set a.[201005]=b.ggg from b where a.bh1=b.bh2
      

  2.   

    update A set [201005]=ggg from B WHERE BH1=BH2
      

  3.   

    update
       a
    set
       [201005]=n.ggg
    from
       a,b
    where
       a.bh1=b.bh2
      

  4.   

    select A.BH1,B.ggg from A,B where A.BH1=B.BH2
      

  5.   


    update
       a
    set
       [201005]=b.ggg
    from
       a,b
    where
       a.bh1=b.bh2不能用a.[201005]
      

  6.   

    --> 生成测试数据表: [a]
    IF OBJECT_ID('[a]') IS NOT NULL
    DROP TABLE [a]
    GO
    CREATE TABLE [a] ([BH1] [nvarchar](10),[201005] [nvarchar](10))
    INSERT INTO [a]
    SELECT '001',NULL UNION ALL
    SELECT '002',NULL--> 生成测试数据表: [b]
    IF OBJECT_ID('[b]') IS NOT NULL
    DROP TABLE [b]
    GO
    CREATE TABLE [b] ([BH2] [nvarchar](10),[ggg] [nvarchar](10))
    INSERT INTO [b]
    SELECT '001','tony' UNION ALL
    SELECT '002','小F'
    -->SQL查询如下:
    update a set a.[201005]=b.ggg from b where a.bh1=b.bh2SELECT * FROM [a]
    /*
    BH1        201005
    ---------- ----------
    001        tony
    002        小F(2 行受影响)
    */我测给你看
      

  7.   

    没太看懂你的需求!但我分析的是你可能是要主外键关系关联两张表吧?
    只要你把a表中的201005字段的外键值设置为b表中的ggg字段就可以了!
      

  8.   

    select A.BH1,B.ggg
    from A,B
    where A.BH1 = B.BH2