数据库有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....)
在查询分析器上不能执行。超级郁闷!
请高手寻求帮助
现编写程序生成一个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....)
在查询分析器上不能执行。超级郁闷!
请高手寻求帮助
fldonlineflag=1 from a,#b where a.id=b.id
这样?
update a set
fldonlineflag=1 from a,#b where a.id=b.id
或放如一临时表.update a set fldonlineflag=1 where fldid in (select fldid from 临时表)
---------------------------------------------------------------------------------------------
有两个问题:
1.使用in会使用语句的效率很低,建议使用临时表来完成
2.如果使用字符变量来保存此语句并执行,有可能是长度超出8000,造成语句无法执行或出错另,在更新此表时,要确定此表是否使用了锁