declare @jobname varchar(100)='定时任务_测试库'; --作业名称
declare @sql varchar(8000); --要执行的命令
declare @dbname sysname=db_name(); --默认为当前的数据库名
declare @fsinterval int=1; --相对于每日的重复次数
declare @time int=000000; --开始执行时间,对于重复执行的作业,将从0点到23:59分
--创建作业
exec msdb..sp_add_job @job_name=@jobname
--创建作业步骤
--作业1
set @sql=' '; --具体执行sql,自己写
exec msdb..sp_add_jobstep
@job_name=@jobname, --作业名称
@step_name = '作业1', --步骤名称
@subsystem = 'TSQL', --
@database_name=@dbname, --定时任务明
@command = @sql, --执行任务
@retry_attempts = 5, --重试次数
@retry_interval = 5, --重试间隔
@on_success_action=3, --转到下一步
@on_fail_action=3 --转到下一步
--作业2
set @sql=' '; --具体执行sql,自己写
exec msdb..sp_add_jobstep
@job_name=@jobname, --作业名称
@step_name = '作业2', --步骤名称
@subsystem = 'TSQL', --
@database_name=@dbname, --定时任务明
@command = @sql, --执行任务
@retry_attempts = 5, --重试次数
@retry_interval = 5, --重试间隔
@on_success_action=3, --转到下一步
@on_fail_action=3 --转到下一步
--作业3
set @sql=' '; --具体执行sql,自己写
exec msdb..sp_add_jobstep
@job_name=@jobname, --作业名称
@step_name = '作业3', --步骤名称
@subsystem = 'TSQL', --
@database_name=@dbname, --定时任务明
@command = @sql, --执行任务
@retry_attempts = 5, --重试次数
@retry_interval = 5, --重试间隔
@on_success_action=1, --退出
@on_fail_action=2 --退出
--创建调度
declare @ftype int=4; --每天=4,每周=8,每月=16
declare @fstype int=0;
declare @ffactor int=0;
EXEC msdb..sp_add_jobschedule
@job_name=@jobname,
@name = '时间安排',
@freq_type=@ftype , --每天,8 每周,16 每月
@freq_interval=1, --重复执行次数
@freq_subday_type=@fstype, --是否重复执行
@freq_subday_interval=@fsinterval, --重复周期
@freq_recurrence_factor=@ffactor,
@active_start_time=@time --执行时间
-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_name = @jobname ,
@server_name = N'(local)'
go