我想根据一个时间段删除A表中的数据,由于A中数据量非常大,
用delete from A where StartTime between(时间)and(时间)删除超时,所以要求按照小时来批量删除,
就是一个小时一个小时的循环删除数据,这个要怎么用存储过程来实现?
请大家帮帮忙,万分感谢!!

解决方案 »

  1.   

    将delete放到存储过程里边,然后创建一个job ,每隔一小时 去执行这个存储过程。
      

  2.   

    delete from A where StartTime=datediff(hour,time1,time2)
    LZ看看,可以结贴给分啦
      

  3.   

    通过游标cursor查询
    遍历删除
      

  4.   


    你没看清我的意思,举个例:我要删除2010-10-01至2010-10-02的数据,那么我的程序要这样实现:
    先删除完2010-10-01的0点的数据,接着是1点的数据,2点的数据.......直到删除完这个时间段的数据,
    是因为数据量大,我要分批删除,不是要一次性删完。
    字段StartTime里保存的是时间,是有时分秒的。
      

  5.   


    能给个例子吗?因为我从来没用过游标cursor
    先说谢谢了
      

  6.   

    delete from A where StartTime=datediff(hour,time1,time2)
      

  7.   

    LZ,在存储过程中通过循环删除,以小时递增time1,time2两个时间就行
    LZ试试应该可以~
      

  8.   

        索引的确能够大大提高查询和操作的速度,不过建立和维护也是不小的麻烦。
         关于LZ要的游标的例子,可以看看
       http://zhidao.baidu.com/question/86521963.html?fr=ala0
       挺简单明了的
      

  9.   

    Delete From A Where DateDiff(Day,StartTime,@temp_Date)=0 And DatePart(hour,StartTime)=@temp_Hour