我的数据库有一个日志表,每天的数据量都很大,我想每天清理三个月前的数据,如何处理阿?

解决方案 »

  1.   

    --通过向导创建作业的基本步骤:(1)企业管理器--管理--SQL Server代理--作业
    (2)右键作业--新建作业
    (3)常规标签
    --名称中输入作业名称
    --如果不希望作业在创建后立即运行,则清除启用复选框
       例如,如果要在按计划运行之前测试某个作业,则禁用该作业。
    --如果作业仅在此服务器上运行,单击以本地服务器为目标选项
    --如果服务器是主服务器,作业在其它服务器上运行,单击以多个服务器为目标选项
    --描述框中输入对作业功能的描述,最大字符数为 512
    (4)步骤标签--新建
    --步骤名中输入步骤名
    --类型中选择Transact-SQL 脚本(TSQL)
    --数据库选择执行命令的数据库
    --命令中输入要执行的语句 例如  EXEC 存储过程名 ...
    --确定
    (5)调度标签--新建调度
    --名称中输入调度名称
    --调度类型中选择你的作业的执行方式
    (如果选择反复出现,那么可以点更改来设置你重复执行作业的方式)(6)启动SQL Agent服务,并设置为自动启动,否则你的作业不会被执行
    --打开SQL SERVER服务管理器--点开始继续--将当启动OS时自动启动服务
    --或我的电脑--控制面板--管理工具--服务--右键SQLSERVERAGENT--属性--启动类型--选择自动启动--确定.
      

  2.   

    按照以上步骤建立作业,在相应步骤下输入sql语句即可(TRUNCATE TABLE抑或是DROP TABLE)
      

  3.   

    EXEC msdb..sp_add_job @job_name = 'Clear Log',@enabled = 1
    EXEC msdb..sp_add_jobstep @job_name = 'Clear Log',
       @step_name = 'C1',
       @command = 'delete from [表] where datediff(mm,field,getdate())<=-3',
       @database_name='库名'
    EXEC msdb..sp_add_jobschedule @job_name = 'Clear Log', 
       @name = 'EveryDay',
       @freq_type = 4, -- daily
       @freq_interval = 1,
       @active_start_time = 10000