資料庫作業 定時執行任務 的建立

2021-10-11 01:39:23 字數 2041 閱讀 3256

--每月執行的作業

exec p_createjob @jobname='mm',@sql='select * from syscolumns',@freqtype='month'

--每週執行的作業

exec p_createjob @jobname='ww',@sql='select * from syscolumns',@freqtype='week'

--每日執行的作業

exec p_createjob @jobname='a',@sql='select * from syscolumns'

--每日執行的作業,每天隔4小時重複的作業

exec p_createjob @jobname='b',@sql='select * from syscolumns',@fsinterval=4

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[p_createjob]') and objectproperty(id, n'isprocedure') = 1)

drop procedure [dbo].[p_createjob]

gocreate proc p_createjob

@jobname varchar(100),--作業名稱

@sql varchar(8000),--要執行的命令

@dbname sysname='',--預設為當前的資料庫名

@freqtype varchar(6)='day',--時間週期,month 月,week 周,day 日

@fsinterval int=1,--相對於每日的重複次數

@time int=170000--開始執行時間,對於重複執行的作業,將從0點到23:59分

asif isnull(@dbname,'')='' set @dbname=db_name()

--建立作業

exec msdb..sp_add_job @job_name=@jobname

--建立作業步驟

exec msdb..sp_add_jobstep @job_name=@jobname,

@step_name = '資料處理',

@subsystem = 'tsql',

@database_name=@dbname,

@command = @sql,

@retry_attempts = 5, --重試次數

@retry_interval = 5 --重試間隔

--建立排程

declare @ftype int,@fstype int,@ffactor int

select @ftype=case @freqtype when 'day' then 4

when 'week' then 8

when 'month' then 16 end

,@fstype=case @fsinterval when 1 then 0 else 8 end

if @fsinterval<>1 set @time=0

set @ffactor=case @freqtype when 'day' then 0 else 1 end

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 --下午17:00:00分執行

-- 新增目標伺服器

exec msdb.dbo.sp_add_jobserver

@job_name = @jobname ,

@server_name = n'(local)'go

MySQL資料庫 Event 定時執行任務

由於專案的業務是不斷往前跑的,所以難免資料庫的表的量會越來越龐大,不斷的擠占硬碟空間。即使再大的空間也支撐不起業務的增長,所以定期刪除不必要的資料是很有必要的。在我們專案中由於不清理資料,乙個表佔的空間竟然達到了4g之多。想想有多可怕.這裡介紹的是用mysql 建立乙個定時器event,定期清除掉之...

定時執行Oracle作業任務

img 建立乙個oracle資料表,並建立乙個過程,使一分鐘執行該過程一次。1 建立表。sql create table test mydate date table created.2 建立乙個自定義過程。sql create or replace procedure proc test as 2...

建立oracle定時執行任務

說明 本文乃我的同事陳為的原創 功能說明 實現定時插入資料 此demo 實現每分鐘插入一條資料 1 建立測試 和自增序列 createtabletest idnumber,namevarchar2 100 number,timedate createsequencetest job minvalue...