if exists(select 1 from sysobjects where name='pr_create_job_auto_vip_fathercard')
  drop procedure pr_create_job_auto_vip_fathercard
go


 
create procedure pr_create_job_auto_vip_fathercard
(
	@job_name VARCHAR(100),
	@run_time VARCHAR(6)
)
AS
BEGIN
	DECLARE @run_time_int INT
	DECLARE @jobid uniqueidentifier, @jobname sysname
	DECLARE @ls_command NVARCHAR(200)
	DECLARE @now VARCHAR(19)
	
	SET @jobname = @job_name
	SET @run_time_int = CAST(@run_time AS INT)

	IF EXISTS(SELECT * FROM msdb.dbo.sysjobs WHERE name=@jobname)
	EXEC msdb.dbo.sp_delete_job @job_name=@jobname

	EXEC msdb.dbo.sp_add_job
	@job_name = @jobname,
	@job_id = @jobid OUTPUT
	
	--定义作业步骤
	DECLARE @sql nvarchar(4000),@dbname sysname
	SET @now = CONVERT(VARCHAR(19),GETDATE(),121) 
	--SET @ls_command = 'exec pr_rm_deduct '''',''%'','''','''','+CONVERT(VARCHAR(19),@now,121)+','+CONVERT(VARCHAR(19),@now,121)+',1001'
	SET @ls_command = 'exec pr_vip_fathercard_deduct '''','''','''','''','''+CONVERT(VARCHAR(19),@now,121)+''','''+CONVERT(VARCHAR(19),@now,121)+''',''1001'',''auto'''
	--PRINT @ls_command
	--SET @ls_command = 'exec pr_base_auto_saleman_deduct ' +@phase + ','''''
	
	SELECT @dbname=DB_NAME()--,  --作业步骤在当前数据库中执行	
	--@sql=@ls_command --一般定义的是使用TSQL处理的作业,这里定义要执行的Transact-SQL语句
	EXEC msdb.dbo.sp_add_jobstep
	@job_id = @jobid,
	@step_name = N'step1',
	@subsystem = 'TSQL', --步骤的类型,一般为TSQL
	@database_name=@dbname,
	@command = @ls_command--@sql

	--创建调度(使用后面专门定义的几种作业调度模板)
	EXEC msdb..sp_add_jobschedule
	@job_id = @jobid,
	@name = N'第一个调度',
	@freq_type=4,                --执行的频率 4-每天执行
	@freq_interval=1,            --执行一次
	@freq_subday_type=0x1,       --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次。0x1和@active_start_time一起使用，@active_start_time指定开始执行的时间，代表在@freq_type指定的频率间隔内只执行一次
								 --若是0x4或0x8，只要指定@freq_subday_interval， @freq_subday_interval代表每多少分钟（当@freq_subday_type=0x4）或小时（当@freq_subday_type=0x8）执行的次数
	--@freq_subday_interval=0,     --重复周期数,这里每小时执行一次
	@active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
	@active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
	@active_start_time = @run_time_int  --作业执行的开始时间,格式为HHMMSS
	--@active_end_time = 230000,    --作业执行的停止时间,格式为HHMMSS
	--@freq_recurrence_factor = 2   --执行间隔 两周

	-- 添加目标服务器
	EXEC msdb.dbo.sp_add_jobserver 
	@job_id = @jobid,
	@server_name = N'(local)'
END
go