sql创建作业--自动执行存储过程

时间:2023-03-10 05:48:27
sql创建作业--自动执行存储过程

创建自动执行存储过程:

1.创建参数

2.删除已有同名的作业

3. 创建作业

4.创建作业步骤

5.连接服务器

6.创建作业调度

7.启动作业

ALTER PROCEDURE dbo.sx_pro_AutoExecJobCreation

AS

Begin

Declare @jobName varchar(20)

Declare @stepName varchar(20)

Declare @scheNmae varchar(20)

declare @sql varchar(1000)

declare @db_name varchar(30)

--dbo.webpage_getData_KPM,webpageKPMalert

--dbo.webpage_getData_scrap,webPageScrapRate

--dbo.webpage_ScrapKPM_Calculation,webpageScrapKPMcal

--dbo.webpage_calScrap,webpage_calScrap

--dbo.webpage_calKpm,webpage_calKpm

set @sql='exec dbo.webpage_calScrap'     --执行存储过程

set @db_name=db_name()

set @jobName='webpage_calScrap'

set @stepName='webpage_calScrap'

set @scheNmae='webpage_calScrap'

--删除作业

if exists(SELECT * FROM msdb.dbo.sysjobs WHERE Name=@jobName)

begin

exec msdb.dbo.sp_delete_job

@job_name =@jobName

end

--创建作业

EXEC msdb.dbo.sp_add_job

@job_name =@jobName

--创建作业步骤

Exec msdb.dbo.sp_add_jobstep

@job_name=@jobName,

@step_name=@stepName,

@subsystem='TSQL',

@database_name=@db_name,

@command=@sql,

@retry_attempts=4,

@retry_interval=5

--连接服务器

EXEC   msdb.dbo.sp_add_jobserver

@job_name=@jobName,

@server_name=N'(local)'

--创建作业调度

EXEC msdb.dbo.sp_add_jobschedule

@job_name = @jobName, -- Job name

@name = @scheNmae,  -- Schedule name

@freq_type =4,

@freq_interval =1,

@freq_subday_type=0x1,

@freq_subday_interval=1,

@active_start_date =null,

@active_end_date =20550101,

@active_start_time = 062000,

@active_end_time = null;

EXEC msdb.dbo.sp_start_job @jobName

end