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

posted @ 2017-12-11 13:06  辛新欣  阅读(1878)  评论(0编辑  收藏  举报