动态创建作业(job)
用户=〉输入时间点=>创建作业=>执行完成=>删除作业

解决方案 »

  1.   

    dlkfth(海之韵)能说的详细一些吗?最好举个例子。谢谢!
      

  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.   

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

  4.   

    注意将sql agent服务设置为自动启动,否则作业不会执行.
      

  5.   

    展开服务器组,然后展开服务器。
    展开"管理",然后展开"SQL Server 代理程序"。
    右击"作业",然后单击"新建作业"命令。
    在"名称"框中输入作业的名称。
    如果不希望作业在创建后立即运行,则清除"启用"复选框。例如,如果要在按计划运行之前测试某个作业,则禁用该作业。
    在"源"下执行下列操作之一: 
    单击"以本地服务器为目标"选项(如果作业仅在此服务器上运行)。如果选择该选项,则跳到第 9 步。
    单击"以多个服务器为目标"选项(如果作业在其它服务器上运行)。然后单击"更改"。 
    只有服务器是主服务器时,才启用此选项。在"更改作业的目标服务器"对话框中,在"可用服务器"选项卡上单击某台服务器,然后单击向右箭头将该服务器移动到"选定的目标服务器"列表中。
    单击"确定"按钮返回"新建作业属性"对话框。
    在"所有者"列表中选择将成为作业所有者的用户。 
    在"描述"框中输入对作业功能的描述。最大字符数为 512。
      

  6.   

    --创建作业
    USE msdb
    EXEC sp_delete_job @job_name = 'DeleteOldInfo' --作业名EXEC sp_add_job @job_name = 'DeleteOldInfo',@description = '定时删除过时的消息内容'
    --创建一个作业步骤
    EXEC sp_add_jobstep @job_name = 'DeleteOldInfo',
       @database_name = 'maidong',
       @step_name = 'deleteOldInformation', --作业步骤名
       @subsystem = 'TSQL',
       @command = 'exec dbo.PrvDeleteOldInfo 1, 1', --dbo.PrvDeleteOldInfo是自己写得存储过程名,执行具体的操作
       @retry_attempts = 5,
       @retry_interval = 5
    --创建作业调度 (每天上午的1:00执行) 
    EXEC sp_add_jobschedule @job_name = 'DeleteOldInfo', 
       @name = 'ScheduledDeleteOldInfo',
       @freq_type = 4, --用于指明何时将执行作业,4(每天),8(每周),16(每月)
       @freq_interval = 1, -- 一次
       @active_start_time = 10000 --时间,格式HHMMSS--将本地服务器与作业相关联
    EXEC sp_add_jobserver @job_name = 'DeleteOldInfo', 
       @server_name = '(local)'GO
      

  7.   

    还有,你最好用域用户的帐户来启动SQLSERVER和SQLSERVER AGENT,不要用LOCALSYSTEM.