我必须创建一个将在预定时间执行的脚本。因为我的客户端不熟悉SQL Server,所以我想根据客户端的要求使用SQL Server Agent计划创建向导在我的计算机上创建计划,然后创建创建计划的脚本(我将发送给客户端)
如何在不使用SQL Server代理计划创建向导的情况下创建T-SQL作业计划?
答案 0 :(得分:6)
您可以使用management studio获取创建脚本。
在管理工作室中创建作业
然后右键单击该作业,从浮动菜单中选择Script The Job As - >创建至 - >新查询编辑器窗口。
更改脚本详细信息以满足您的需求
答案 1 :(得分:3)
使用Transact-SQL创建SQL Server代理作业:
更多here。
答案 2 :(得分:1)
您可以启动SQL Profiler,运行向导步骤,然后查看在后台执行的SQL,并将其作为准备脚本的基础。
答案 3 :(得分:1)
我看到你接受了上述答案,但是如果你正在尝试专门创建一个你的问题所说的日程表,而不是一份工作,你可以使用sp_add_schedule。
答案 4 :(得分:0)
如果您知道作业的名称并想要添加新的计划,然后将其添加到多个作业中,则可以用这种方式编写脚本(这是一个示例,频率为每天2x00,每天1x,添加到2职位)
USE [msdb]
GO
DECLARE @schedule_id int, @job_id uniqueidentifier
-- create the schedule
EXEC msdb.dbo.sp_add_schedule @schedule_name=N'name of the schedule',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20180703,
@active_end_date=99991231,
@active_start_time=020000,
@active_end_time=235959, @schedule_id = @schedule_id OUTPUT
-- add it to job 1
set @job_id = (select job_id from msdb.dbo.sysjobs where name='Name of job 1')
EXEC msdb.dbo.sp_attach_schedule @job_id=@job_id,@schedule_id= @schedule_id
-- add it to job 2
set @job_id = (select job_id from msdb.dbo.sysjobs where name='Name of job 2')
EXEC msdb.dbo.sp_attach_schedule @job_id=@job_id,@schedule_id= @schedule_id
GO