在ADOQuery3的SQL属性中代码如下:
update t_stointemp,t_store
set t_store.dqsl=t_store.dqsl+t_stointemp.sl
WHERE t_stointemp.spbh=t_store.spbh And t_stointemp.clabel=t_store.clabel
原来在ACCESS数据库中没问题,但我换了SQL2000后,运行程序提示
第1行:","附近有语法错误
怎么解决?谢谢!!

解决方案 »

  1.   

    把你的字符串show出来,access和sqlserver有一些sql语句不是通用的
      

  2.   

    1.采用此种样式
      update (select table1.col2,table1.col3 from table1,table2 where table1.col1=table2.col1 
    and table2.col2='AA') set table1.col2='a',table2.col3='b'
    2.采用此种样式
      UPDATE dbo.Table2 
    SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB
    FROM dbo.Table2 
        INNER JOIN dbo.Table1 
        ON (dbo.Table2.ColA = dbo.Table1.ColA);
      

  3.   

    1,改成这样吧。
    UPDATE A SET col2='a', col3='b' 
    FROM 
    (
    SELECT table1.col2, table1.col3 
    FROM 
    table1, table2 
    WHERE table1.col1=table2.col1 AND table2.col2='AA'
    ) A
      

  4.   

    sql中的多表级联更新,是要用别名的,update 后只能有一个表别名
    update a
       set a.dqsl=a.dqsl+b.sl
      from t_stointemp b,t_store a
    WHERE b.spbh=a.spbh And b.clabel=a.clabel这样就行,但是如果b表中有多条和a表对应,那么a.dqsl最后更新的是匹配的最后一条记录的值,这个要注意
    access 没这么用过,但是sql的确是这样做的,
      

  5.   

    第1行:","附近有语法错误
    这个提示就是  update 后面那个“,”引发的
      

  6.   

    update a
      set a.dqsl=a.dqsl+b.sl
      from t_stointemp b,t_store a
    WHERE b.spbh=a.spbh And b.clabel=a.clabel