数据库有a表,表中有3个字段   fldid(主建,索引),fldusername,fldUserPwd,fldOnlineflag   ,保存有200w数据,
现编写程序生成一个B集合 (1,5,6,99.....)大约几百条数据。注意:不是B表,该程序不是单机版,运行时如新生成临时B表保存B集合数据时,在插入时有可能被别的同时运行程序delete该表所有的数据目的   :查询表fldid字段符合集合B的数据置fldonlineflag=1
之前sql语句如下
update  a  set   fldonlineflag=1   where   fldid   in   (1,5,6,99....)
在查询分析器上不能执行。超级郁闷!
请高手寻求帮助 

解决方案 »

  1.   

    update     a     set       
    fldonlineflag=1 from a,#b where a.id=b.id
    这样?
      

  2.   

    不懂
    update     a     set       
    fldonlineflag=1 from a,#b where a.id=b.id
      

  3.   

    在插入时有可能被别的同时运行程序delete该表所有的数据这个只能锁住表来插入.一个B集合   (1,5,6,99.....)大约几百条数据
    或放如一临时表.update a set fldonlineflag=1 where fldid in (select fldid from 临时表)
      

  4.   

    发现用in 效率太慢 非别的原因 多谢dawugui
      

  5.   

    注意:是B集合不是B表,该程序不是单机版,运行时如新生成临时B表保存B集合数据时,在插入时有可能被别的同时运行程序delete该表所有的数据!!!
      

  6.   

    update     a     set       fldonlineflag=1       where       fldid       in       (1,5,6,99....) 
    ---------------------------------------------------------------------------------------------
    有两个问题:
    1.使用in会使用语句的效率很低,建议使用临时表来完成
    2.如果使用字符变量来保存此语句并执行,有可能是长度超出8000,造成语句无法执行或出错另,在更新此表时,要确定此表是否使用了锁