创建一个合同表 tbHt( iHtbh,iHtmc,dHtqdrq,iWhzq,dXcbyrq)  
表示的意义是:合同(合同编号,名称,合同签定日期,维护周期,下次保养日期),    
tbWh(iWhbh,iHtbh,dWhrq) 表示的意思是:维护(维护编号,合同编号,实际维护日期),
当有维护记录生成时,便自动形成下次保养日期。(写代码)
要考虑多种情况:例如:1.今天要维修但确要延后,那么下次维修的时间
2.提前维修
3.按正常日期来维修在维护表中做触发器,要做插入,和修改两种

解决方案 »

  1.   

    规则说清楚触发器其实很简单,大概(我的算法:下次维护时间=这次维护时间 + 维护周期天 )create trigger tr_tbWh_insert
    on tbWh
    for insert 
    asupdate b set
       dXcbyrq = dateadd(day,b.iWhzq,i.dWhrq)
    from inserted i,tbHt b
    where i.iHtbh = b.iHtbhgo
      

  2.   

    create trigger tr_tbWh_insert on tbWh
    for insert 
    as
    update b set dXcbyrq = dateadd(day,b.iWhzq,i.dWhrq)
    from inserted i,tbHt b
    where i.iHtbh = b.iHtbh
    go
    create trigger tr_tbWh_update on tbWh
    for update 
    as
    if update (dWhrq)
    update b set dXcbyrq = dXcbyrq+datediff(dd,c.dWhrq,i.dWhrq)
    from inserted i,tbHt b,deleted c
    where i.iHtbh = b.iHtbh and c.iHtbh = b.iHtbh
      

  3.   

    如果楼主对触发器不熟的话,可以参考一下这个。
    http://blog.csdn.net/sdhdy/archive/2009/06/07/4249668.aspx
      

  4.   

    谢谢sdhdy你的回答,也谢谢其他楼的帮忙