数据库中每天都有上10万的数据写入,如何只保留最后30天的数据,请高人指点,谢谢.

解决方案 »

  1.   

    delete from [Table] where datediff(day,[field],getdate())>30
      

  2.   

    delete table where RunDate <= dateadd(dd,-30,getdate())
      

  3.   

    企业管理器
    --管理
    --SQL Server代理
    --右键作业
    --新建作业
    --"常规"项中输入作业名称
    --"步骤"项
    --新建
    --"步骤名"中输入步骤名
    --"类型"中选择"Transact-SQL 脚本(TSQL)"
    --"数据库"选择执行命令的数据库
    --"命令"中输入要执行的语句:
                           delete 表 where datediff(dd,日期,getdate())>30 --确定
    --"调度"项
    --新建调度
    --"名称"中输入调度名称
    --"调度类型"中选择你的作业执行安排
    --如果选择"反复出现"
    --点"更改"来设置你的时间安排为每天一次
    然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:
    我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
      

  4.   

    delete 表
    where 日期<
    select top 1 * from (
    select top 30 日期 from 表
    group by convert(varchar(10),日期,120) order by convert(varchar(10),日期,120) desc)a
    order by 日期
      

  5.   

    delete 表
    where 日期<
    (select top 1 日期 from (
    select top 30 日期 from 表
    group by convert(varchar(10),日期,120) order by convert(varchar(10),日期,120) desc)a
    order by 日期)如果你要脚本的话。。这条是删除<后30中最前一天的所有数据
      

  6.   

    delete from [Table] where datediff(day,[field],getdate())>30
      

  7.   

    delete from [Table] where datediff(day,[field],getdate())>30
    -------------------------------------------------
    这句就别跟着说了~~
      

  8.   

    创建作业
    delete table_Pqs where 时间字段 <= dateadd(d,-30,getdate())
    调度每天执行一次
      

  9.   

    创建作业,delete from [Table] where datediff(day,[field],getdate())>30
    每天一次
      

  10.   

    创建个job比较好,直接搞个sql删了就是啦。