【问题标题】:Schedule Script for SQL JobsSQL 作业的计划脚本
【发布时间】:2015-07-29 16:43:50
【问题描述】:

如何使用 SQL 脚本安排 SQL 作业。我有大约 80 个 SQL 作业。我想安排我所有的 SQL 作业并使用脚本获取作业预定作业的详细信息。

SELECT * 
FROM [msdb].[dbo].[sysjobschedules]

上面的查询只给了我调度作业的列表,但没有提供任何调度 SQL 作业的方法。我正在寻找一个通用脚本来在数据库中调度 SQL 作业。我该怎么做?

【问题讨论】:

  • 您使用的是哪个版本的 SQL Server?

标签: sql-server sql-server-2008 sql-job


【解决方案1】:

试试这个

USE msdb ;
GO

EXEC sp_add_schedule
    @schedule_name = N'NightlyJobs' ,
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 010000 ;
GO

EXEC sp_attach_schedule
   @job_name = N'BackupDatabase',
   @schedule_name = N'NightlyJobs' ;
GO

EXEC sp_attach_schedule
   @job_name = N'RunReports',
   @schedule_name = N'NightlyJobs' ;
GO

sp_add_schedule

simple-way-to-create-a-sql-server-job-using-tsql

generate-sql-agent-job-schedule-report

create-MS-SQL-Server-agent-jobs-and-schedule

【讨论】:

    【解决方案2】:

    我会使用这个内置的过程来做到这一点:

    sp_add_schedule

    这是 proc 的作用:

    1) 使用指定参数创建计划并返回 计划编号

    2) 将计划附加到现有作业。

    示例代码:

    declare @start_date varchar(8) = convert(varchar(8), DATEADD(day,1,GETDATE()), 112)
    
    EXEC sp_add_schedule
       @schedule_name = N'SomeName',
       @freq_type = 1,
       @active_start_date = @start_date,
       @active_start_time = 010000; 
    

    此外,您可以使用此查询来查找您当前的工作安排信息:

    SELECT * FROM  msdb.dbo.sysschedules;
    

    希望这会有所帮助!

    【讨论】:

    • 我喜欢这个答案,但我怀疑一些额外的信息会对 OP 有所帮助。
    • 感谢您的反馈,@DMason!我添加了更多信息:)
    【解决方案3】:

    抱歉,误读了问题。

    这样的事情怎么样:

    EXEC msdb.dbo.sp_add_jobschedule @job_id=N'yourjobid',@name=N'TestSchedule1', 
       @enabled=1, 
       @freq_type=8, -- 4 - daily, 8 - weekly
       @freq_interval=2, --for weekly jobs 2 is Monday, 4 is Tuesday etc.
       @freq_subday_type=1, 
       @freq_subday_interval=0, 
       @freq_relative_interval=0, 
       @freq_recurrence_factor=1, 
       @active_start_date=20150729, 
       @active_start_time=0, 
       schedule_id=@schedule_id
    GO
    

    或对 SQL Server 2014 和 2016 使用 sp_add_schedule。SQL 2012 及更低版本 - 使用 sp_add_jobschedule

    【讨论】:

    • 我正在寻找创建计划而不是工作。我还有大约 80 个工作,所以想看看是否有任何通用脚本存储详细信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多