如下
UPDATE T_XSDDTJ144 SET F_BMMC=KCBMZD_BMMC FROM T_XSDDTJ144,KCBMZD WHERE T_XSDDTJ144.F_BMBH=KCBMZD_BMBH好像是在F_BMMC=KCBMZD_BMMC这里出问题了?
怎么改呢?

解决方案 »

  1.   

    update T_XSDDTJ144 SET F_BMMC=KCBMZD_BMMC FROM T_XSDDTJ144 a
    where exists
    (
    select 1
    from KCBMZD b
    where a.F_BMBH=b.BMBH
    )
      

  2.   

    update T_XSDDTJ144  s
    SET F_BMMC=KCBMZD_BMMC 
    where exists
    (
    select 1
    from KCBMZD b
    where a.F_BMBH=b.BMBH)
      

  3.   


    UPDATE T_XSDDTJ144 a
       SET F_BMMC = KCBMZD_BMMC
     WHERE EXISTS
              (SELECT 1
                 FROM KCBMZD b
                WHERE a.F_BMBH = b.BMBH)上面的都有点错误
      

  4.   

    UPDATE + FROM 没有这种结构化查询SQL的哦
      

  5.   


    --update语句最好带上where子句
    update T_XSDDTJ144 t1
    set F_BMMC=(
        select KCBMZD_BMMC
        from KCBMZD t2
        where t1.F_BMBH=t2.KCBMZD_BMBH)
    where exists(
          select 1 from KCBMZD t3
          where t1.F_BMBH=t3.KCBMZD_BMBH)
      

  6.   


    --使用merge into 效率高,10G以上
    MERGE INTO T_XSDDTJ144 T1
    USING KCBMZD T2
    ON (T1.F_BMBH = T2.KCBMZD_BMBH)
    WHEN MATCHED THEN
      UPDATE SET T1.F_BMMC = T2.KCBMZD_BMMC