sqlserver 使用腳本創建Sql Server代理作業


use master
GO

/*  --開啟sql server代理
sp_configure 'show advanced options', 1;   
GO   
RECONFIGURE;   
GO   
sp_configure 'Agent XPs', 1;   
GO   
RECONFIGURE   
GO
*/


--定義創建作業
DECLARE @jobid uniqueidentifier, @jobname sysname
SET @jobname = N'testInterval'

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
SELECT @dbname=DB_NAME(),  --作業步驟在當前數據庫中執行
@sql=N'--作業步驟內容'  --一般定義的是使用TSQL處理的作業,這里定義要執行的Transact-SQL語句
EXEC msdb.dbo.sp_add_jobstep
@job_id = @jobid,
@step_name = N'步驟一',
@subsystem = 'TSQL', --步驟的類型,一般為TSQL
@database_name=@dbname,
@command = @sql

--創建調度(使用后面專門定義的幾種作業調度模板)
EXEC msdb..sp_add_jobschedule
@job_id = @jobid,
@name = N'第一個調度',
@freq_type=8,                --執行的頻率 周
@freq_interval=4,            --在星期二執行
@freq_subday_type=0x8,       --重復方式,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=2,     --重復周期數,這里每小時執行一次
@active_start_date = NULL,   --作業執行的開始日期,為NULL時表示當前日期,格式為YYYYMMDD
@active_end_date = 99991231, --作業執行的停止日期,默認為99991231,格式為YYYYMMDD
@active_start_time = 020000,  --作業執行的開始時間,格式為HHMMSS
@active_end_time = 030000,    --作業執行的停止時間,格式為HHMMSS
@freq_recurrence_factor = 2   --執行間隔 兩周

--參考
--http://www.cnblogs.com/lijun198504/articles/1352558.html
--http://msdn.microsoft.com/zh-cn/library/ms366342.aspx

-- 添加目標服務器
EXEC msdb.dbo.sp_add_jobserver 
@job_id = @jobid,
@server_name = N'(local)'




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM