Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL作业的计划脚本_Sql Server_Sql Server 2008_Sql Job - Fatal编程技术网

Sql server SQL作业的计划脚本

Sql server SQL作业的计划脚本,sql-server,sql-server-2008,sql-job,Sql Server,Sql Server 2008,Sql Job,如何使用SQL脚本安排SQL作业。我有大约80个SQL作业。我想计划所有SQL作业,并使用脚本获取作业计划作业的详细信息 SELECT * FROM [msdb].[dbo].[sysjobschedules] 上面的查询只提供调度作业的列表,但不提供任何调度SQL作业的方法。我正在寻找一个通用脚本来调度数据库中的SQL作业。我该怎么做?对不起,误读了这个问题 这样怎么样: EXEC msdb.dbo.sp_add_jobschedule @job_id=N'yourjobid',@name

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

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

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

对不起,误读了这个问题

这样怎么样:

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_添加_计划。SQL 2012及以下版本-使用sp_add_jobschedule试试这个

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


我将使用此内置程序来执行以下操作:

以下是proc所做的:

1) 使用指定的参数创建明细表并返回 计划id

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;

希望这有帮助

我正在寻找创建时间表,而不是工作。另外,我有大约80份工作,所以我想看看是否有存储详细信息的通用脚本您使用的是哪个版本的SQL Server?我喜欢这个答案,但我怀疑一些额外的信息会对OP有所帮助。谢谢您的反馈,@DMason!我添加了更多信息:)