现在有若干条记录,有开始时间和结束时间(Starttime,endtime)以及状态state
现在要做的操作是当现在时间getdate()< Starttime 或 getdate()>endtime时update state=2
请问这个在数据库中应该用什么方式实现好呢?
是存储过程、触发器还是作业?
如果可以的话帮我分析一下机理!

解决方案 »

  1.   

    不是对表中数据插入或删除的时候,是现有记录进行时间比较,如果时间在starttime与endtime之外,就置state=2,而且表中记录很多,每条记录的starttime和endtime可能都不同。比如一条记录
    id    starttime     endtime     state
    125   2010-01-01   2010-01-10     0
    ...
    156   2009-12-01   2009-12-31     0就是现在是2010-01-06就不对125处理,对156就置state=2
      

  2.   

    --用定时作业
    create proc proc_trans_changeatate as
    begin
    update [tb]
    set state = 2
    where Starttime>getdate()
    or endtime<getdate()
    end