触发器做不到定时执行要定时执行,得用作业(job)

解决方案 »

  1.   

    企业管理器
    --管理
    --SQL Server代理
    --右键作业
    --新建作业
    --"常规"项中输入作业名称
    --"步骤"项
    --新建
    --"步骤名"中输入步骤名
    --"类型"中选择"Transact-SQL 脚本(TSQL)"
    --"数据库"选择执行命令的数据库
    --"命令"中输入要执行的语句
    --确定
    --"调度"项
    --新建调度
    --"名称"中输入调度名称
    --"调度类型"中选择你的作业执行安排
    --如果选择"反复出现"
    --点"更改"来设置你的时间安排
      

  2.   

    用语句创建的方法:--创建作业
    exec msdb..sp_add_job @job_name='数据处理'--创建作业步骤
    declare @sql varchar(800),@dbname varchar(250)
    select @sql='exec p_createxml'  --数据处理的命令
    ,@dbname=db_name() --执行数据处理的数据库名exec msdb..sp_add_jobstep @job_name='数据处理',
    @step_name = '数据同步',
    @subsystem = 'TSQL',
    @database_name=@dbname,
    @command = @sql,
    @retry_attempts = 5,  --重试次数
    @retry_interval = 5   --重试间隔--创建调度
    EXEC msdb..sp_add_jobschedule @job_name = '数据处理', 
    @name = '时间安排',
    @freq_type=4,   --4 每天,8 每周,16 每月
    @freq_interval=1, --作业执行的天数
    @freq_subday_type=0, --是否重复执行,0x1 在指定的时间, 0x4 分钟, 0x8 小时 
    @freq_subday_interval=1,  --重复周期
    @freq_recurrence_factor=0, --重复执行,则设置为1,否则设置为0
    @active_start_time = 00000 --0点开始执行
      

  3.   

    注意,设置了作业后,要将sqlagent服务设置为自动启动,否则作业不会执行.
      

  4.   

    创建作业的例子目的:创建一个作业myJob,每天23:00清空test数据库中的test表方法一、使用企业管理器
    步骤:展开服务器组,然后展开服务器。展开"管理",然后展开"SQL Server 代理程序"。右击"作业",然后单击"新建作业"命令。在"名称"框中输入作业的名称,这里输入“myJOB”。如果不希望作业在创建后立即运行,则清除"启用"复选框。例如,如果要在按计划运行之前测试某个作业,则禁用该作业。打开“步骤”属性页,点击"新建",输入名称"Step_1",在,选择test数据库,在命令文本输入框中输入
    delete from test ,点击应用。打开 “调度”属性页,新建立一个调度”schedule_1“为作业指定反复执行的方式,执行时间为每天23:00。最后,点击“应用”,保存推出。注意,设置了作业后,要将sqlagent服务设置为自动启动,否则作业不会执行.二、使用查询分析器
    如果用sql语句建立以上作业:USE msdbEXEC sp_add_job @job_name = 'myJOB'EXEC sp_add_jobstep @job_name = 'myJOB',
       @step_name = 'Step_1',
       @subsystem = 'TSQL',
       @command = 'delete test'
    EXEC sp_add_jobschedule @job_name = 'myJOB', 
       @name = 'Schedule_1',
       @freq_type = 4, -- 每天
       @freq_interval = 1, --间隔
       @active_start_time = 230000  --23点