你這種寫法只有
SQL Server才支持。

解决方案 »

  1.   

    但像你這種寫法所得到的@aaa的值是Update完成後最後一筆Flag的值。
                                             ^^^^^^^^^^^^^^^
      

  2.   

    但像你這種寫法所得到的@aaa的值是Update完成後最後一筆Flag的值。
                                             ^^^^^^^^^^^^^^^
      

  3.   

    写个存储过程就行了create procedure yourfun() returning int      define  aaa like abctable.flag;      select flag into aaa from abctable where id = 001;      update abctable set flag = flag +1 where id = 001;      return aaa ;
    end procedure ;
    in your .ec program using:
    Exec SQL execute procedure yourfun() into :aaa;
      

  4.   

    to 若水三千,我所想要做的只不过是在不被打断的情况下作两件事情而已,很希奇吗?按说你应该学过操作系统,你知道互斥的最简单的方法就是硬件有单一指令支持。正如一劍飄香所说,sql server就支持这样的语句,只不过我用的是informix罢了。
    to when 我只能用sql不能用存储过程,很遗憾还有其他什么办法吗?
    To 一劍飄香 其实我并不在意得到的是之前还是之后的值,只要能够实现类似的就行了。
      

  5.   

    我不懂informix,在 sql server中,可用2种方法,再简单是1
    1、informix有触发器吗?有就可在update时将值返回;和上面的存储过程差不多
    2、执行两条语句总可以吧,一起发过去执行!(它们顺序执行,应当不会有其他人的语句插入)