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

解决方案 »

  1.   

    update a set fldonlineflag=1
      from tb a,(select fldid=1 union all select fldid=5) b
      where a.fldid=b.fldid
      

  2.   


    update   set   fldonlineflag=1   where   fldid   in   (1,5,6,99....) --错误
    --------
    update  a表  set   fldonlineflag=1   where   fldid   in   (1,5,6,99....) 
      

  3.   

    declare @tb table (id int)insert into @tb select 1
    insert into @tb select 2
    insert into @tb select 3
    insert into @tb select 4declare @id varchar(20)
    set @id='2,3'
    select * from @tb where charindex(','+cast(id as varchar)+',',','+@id+',')>0
    id
    2
    3
      

  4.   

    没有生成B表 ,是用vb编写的生成的集合b --->(1,3,6,8.......)
      

  5.   

    drop table lilinxin
    create table lilinxin 
    (id int primary key,
    name varchar(10),
    fldonlineflag char(1)
    )insert into lilinxin select 1,'AAAA',''
    insert into lilinxin select 2,'BBBB',''
    insert into lilinxin select 3,'CCCC',''
    insert into lilinxin select 4,'DDDD',''select * from lilinxinupdate lilinxin set fldonlineflag = '1' where id in (2,4)select * from lilinxin
    /*
    id      name   fldonlineflag 
    1 AAAA  
    2 BBBB 1
    3 CCCC  
    4 DDDD 1
    */