数据库作业[定时执行任务]的创建 (转帖)

--每月执行的作业
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]
GO
create 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分
as
if isnull(@dbname,‘‘)=‘‘ set @dbname=db_name()
--创建作业
exec msdb..sp_add_job @[email protected]
--创建作业步骤
exec msdb..sp_add_jobstep @[email protected],
@step_name = ‘数据处理‘,
@subsystem = ‘TSQL‘,
@[email protected],
@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 @[email protected],
@name = ‘时间安排‘,
@[email protected] , --每天,8 每周,16 每月
@freq_interval=1,--重复执行次数
@[email protected],--是否重复执行
@[email protected], --重复周期
@[email protected],
@[email protected]  --下午17:00:00分执行
-- 添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_name = @jobname ,
@server_name = N‘(local)‘
go

时间: 2024-11-09 16:19:11

数据库作业[定时执行任务]的创建 (转帖)的相关文章

数据库作业[定时执行任务]的创建

--每月执行的作业 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 syscolumn

通过MSSQl作业定时执行批处理BAT文件

前言 有些时候,我们可能会需要定时执行一下批处理来达到一定的目的,比如Oracle数据库的定时备份,当然Oracle也可以通过Rman实现定时备份.我们大多数的时候是通过操作系统的计划任务实现定时执行批处理. 但是当我们想要获取相关执行细节,MSSQL的作业是一个很好的选择. 具体方案 首先我们需要一个能够满足自己需求的批处理文件.比如Oracle的定时备份批处理 这个批处理可以将Oracle数据库备份至异地服务器上. 然后通过MSSQL的作业定时执行该批处理 首先要开启MSSQL的XPCmdS

Mysql数据库每天定时执行备份方法

此数据库备份方法是简单的数据库备份方法,就是从Mysql的数据文件下,将数据库文件拷贝到指定的文件夹目录下 1.创建txt文件,添加脚本 net stop mysql xcopy D:\MySql\Data\*.* D:\MySqlDataBack\%date:~0,10%-data\ /y net start mysql 其中 此脚本是拷贝数据的表文件 net stop mysql:停止mysql服务: xcopy D:\MySql\Data\*.* D:\MySqlDataBack\%dat

MySQL数据库 Event 定时执行任务

一.背景 由于项目的业务是不断往前跑的,所以难免数据库的表的量会越来越庞大,不断的挤占硬盘空间.即使再大的空间也支撑不起业务的增长,所以定期删除不必要的数据是很有必要的.在我们项目中由于不清理数据,一个表占的空间竟然达到了4G之多.想想有多可怕... 这里介绍的是用MySQL 建立一个定时器Event,定期清除掉之前的不必要事件. 二.内容 #1.建立存储过程供事件调用 delimiter// drop procedure if exists middle_proce// create proc

转:windows下定时执行备份数据库

上一篇写了linux下定时任务,这一篇转发一个windows下定时备份数据库. 第一种:新建批处理文件 backup.dat,里面输入以下 net stop mysql xcopy "C:\Program Files\MySQL\MySQL Server 5.0\data\piaoyi\*.*" D:\db_backup\%date:~0,10%\ /y net start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号! 关于时间参数的参考: %date:~0

以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新 删除)操作

DBAdapter数据库辅助类 package com.databses; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.s

SqlServer定时备份数据库和定时杀死数据库死锁解决

PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库 因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开启的.需要我们手动开启的. 执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了.但是还没有达到定时备份的目的 ? 1 2 3 4 5 6 7 8 9 10 11 --自动备份并保存最近5天的SQL数据库作业脚本 宋彪 20130310 DECLARE @filename VARCHA

定时执行存储过程

定时执行存储过程 基础 Oracle定时器 Oracle定时器:定时执行某个存储过程. 通过pl/SQL的图形化界面可以看到.定时器包括:调度和存储过程连接口 存储过程连接口 存储过程连接口,主要告诉定时器要执行哪一个存储过程.存储过程连接口就是存储过程执行的入口.从图形化界面可以看出"Action"就是要执行的存储过程.而"Arguments"就是调用该存储过程所需要的参数类型及存储过程所调用的必须参数. 存储过程 存储过程(Stored Procedure)是在

Linux下定时执行脚本(转自Decode360)

文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog  老师(业精于勤而荒于嬉 QQ:150355677 MSN:[email protected]) 菜鸟表示不会写shell脚本,但还是能够看懂的,昨天因为传了太多数据,结果namenode进入了safe mode,然后小伙伴赶紧就暂停了每天早晨4点自动执行的数据合并压缩和传输的脚本,今天我自己准备改,才发现这篇博文. 先说说