解决方案 »

  1.   

    update B set B.zzguid=(select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID);
    UPDATE A SET A.ZZGUID=JGZZGUID;
      

  2.   

    update B set B.zzguid=(select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID);
    UPDATE A SET A.ZZGUID=JGZZGUID;这样很明显不行,update B set B.zzguid=(select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID);
    这个 (select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID);先不说这条语句是否正确,假设正确,返回不是一个值,而是很多个值,这样数据回报单行字查询返回多个行
      

  3.   

    update B set B.zzguid=(select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID);
    UPDATE A SET A.ZZGUID=JGZZGUID;这样很明显不行,update B set B.zzguid=(select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID);
    这个 (select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID);先不说这条语句是否正确,假设正确,返回不是一个值,而是很多个值,这样数据回报单行字查询返回多个行
    如果是存在返回多行记录,那你更新的时候是基于什么规则?也就是说如果同一个ZZGUID对应多个JGZZGUID ,你要更新成哪一个?最小的,最大的....
      

  4.   

    估计有可能是返回0行了,0行和多行错误号一样,增加个条件试下,没有对应数据的不需要更新
    update B set B.zzguid=(select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID)
    where exits (select 1 FROM A WHERE A.ZZGUID=B.ZZGUID)
      

  5.   

    单词拼错
    update B set B.zzguid=(select A.JGZZGUID FROM A WHERE A.ZZGUID=B.ZZGUID)
    where exists (select 1 FROM A WHERE A.ZZGUID=B.ZZGUID)