数据库中有以下数据表格与相关的数据ID  country  customer    orderID  submiteDate  Flag
1   china    Trade INTL  002      2009-9-25     Y想根据以下的要求写一个存储过程并让这存储过程在数据库端按照规定时间自动运行,例如每天8点钟运行一次1. 用当前时间减去submiteDate, 如果时间差超过72小时,就把Flag更新为"N"
2. 星期六和星期天必须排除请各位帮忙看看如何实现但如果我想也把假期排除,并且我已有以下数据表存储假期的信息,哪又应该实现呢ID country holidayDate
1  china   2009-10-01
2  china   2009-10-02   

解决方案 »

  1.   

    什么时候去做, 这个建立一个作业(Job), 设置好执行计划就好了(注意sqlagent 服务要启动并且设置为自动)
      

  2.   

    更新用类似这样的语句(可以直接写在作业的步骤中, 也可以写成存储过程, 并且在作业的步骤中调用这个存储过程)UPDATE tb SET Flag = 'N'
    WHERE Flag <> 'N'
        AND submiteDate <= DATEADD(Hour, -72, GETDATE())
      

  3.   

    2. 星期六和星期天必须排除 请各位帮忙看看如何实现 但如果我想也把假期排除,并且我已有以下数据表存储假期的信息,哪又应该实现呢 ID country holidayDate 
    1  china  2009-10-01 
    2  china  2009-10-02 
    ---这个有好多的讨论,关于自定义节假日,你建一个表自行排除
      

  4.   

    不知道楼主所谓的排除周六周日及假日, 是否是指这个72小时过期不包含这些日期, 如果是的话, 你可以建立一个函数去算以某个时间开始, +/-多少小时之后的日期, 代替上述处理语句中的 DATEADD 函数就好了
      

  5.   

    请大家给出具体的实现方法好吗?本人只是略懂一点sql, 但是工作需要嘛,所以才请各位帮忙