SQLServer:定时作业:

如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理-SQL Server代理-作业来实现

也快可以定时备份数据库。(方法见收藏)

脚本实现如下:

 
 

SQL作业的操作全

--定义创建作业
DECLARE @jobid uniqueidentifier
EXEC msdb.dbo.sp_add_job
        @job_name = N'作业名称',
        @job_id = @jobid OUTPUT

--定义作业步骤
DECLARE @sql nvarchar(400),@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=4,                --每天
        @freq_interval=1,            --指定每多少天发生一次,这里是1天.
        @freq_subday_type=0x8,       --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次
        @freq_subday_interval=1,     --重复周期数,这里每小时执行一次
        @active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
        @active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
        @active_start_time = 00000, --作业执行的开始时间,格式为HHMMSS
        @active_end_time = 235959    --作业执行的停止时间,格式为HHMMSS

--添加目标服务器
DECLARE @servername sysname
SET @servername=CONVERT(nvarchar(128),SERVERPROPERTY(N'ServerName'))
EXEC msdb.dbo.sp_add_jobserver
        @job_id = @jobid,
        @server_name = @servername --使用当前SQL实例

--调度模板定义
--/*--日调度
EXEC msdb..sp_add_jobschedule
        @job_id = @jobid,
        @name = N'调度名称',
        @freq_type=4,                --每天
        @freq_interval=1,            --指定每多少天发生一次,这里是1天.
        @freq_subday_type=0x8,       --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次
        @freq_subday_interval=1,     --重复周期数,这里每小时执行一次
        @active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
        @active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
        @active_start_time = 00000, --作业执行的开始时间,格式为HHMMSS
        @active_end_time = 235959    --作业执行的停止时间,格式为HHMMSS
--*/

--/*--周调度
EXEC msdb.dbo.sp_add_jobschedule
        @job_id = @jobid,
        @name = N'调度名称',
        @freq_type = 8,              --每周
        @freq_recurrence_factor = 1, --每多少周执行一次,这里是每周
        @freq_interval = 62,         --在星期几执行,由POWER(2,N)表示,N的值为0~6,代表星期日~星期六,如果指定两个,则将值相加,例如,值为65表示在星期天和星期日执行(POWER(2,0)+POWER(2,6))
        @freq_subday_type = 0x8,     --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次
        @freq_subday_interval = 1,   --重复周期数,这里每小时执行一次
        @active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
        @active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
        @active_start_time = 00000, --作业执行的开始时间,格式为HHMMSS
        @active_end_time = 235959    --作业执行的停止时间,格式为HHMMSS
--*/

--/*--月调度(每X个月的每月几号)
EXEC msdb.dbo.sp_add_jobschedule
        @job_id = @jobid,
        @name = N'调度名称',
        @freq_type = 16,             --每月
        @freq_recurrence_factor = 2, --每多少月执行一次,这里是每2个月
        @freq_interval = 2,          --在执行月的第几天执行,这里是第2天
        @freq_subday_type = 0x8,     --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次
        @freq_subday_interval = 1,   --重复周期数,这里每小时执行一次
        @active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
        @active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
        @active_start_time = 00000, --作业执行的开始时间,格式为HHMMSS
        @active_end_time = 235959    --作业执行的停止时间,格式为HHMMSS
--*/

--/*--月调度(每X个月的相对时间)
EXEC msdb.dbo.sp_add_jobschedule
        @job_id = @jobid,
        @name = N'调度名称',
        @freq_type = 32,             --每月
        @freq_recurrence_factor = 2, --每多少月执行一次,这里是每2个月
        @freq_interval = 9,          --在当月的那个时间执行,1~7=星期日至星期六,8=日 ,9=工作日,10=周末
        @freq_relative_interval = 1, --在第几个相对时间执行,允许的值为1,2,4,8代表第1~4个相对时间,16表示最后一个相对时间
        @freq_subday_type = 0x8,     --重复方式,0x1=在指定的时间,0x4=多少分钟,0x8=多少小时执行一次
        @freq_subday_interval = 1,   --重复周期数,这里每小时执行一次
        @active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
        @active_end_date = 99991231, --作业执行的停止日期,默认为99991231,格式为YYYYMMDD
        @active_start_time = 00000, --作业执行的开始时间,格式为HHMMSS
        @active_end_time = 235959    --作业执行的停止时间,格式为HHMMSS
--*/

--/*--在特定时候执行的作业调度
EXEC msdb.dbo.sp_add_jobschedule
        @job_id = @jobid,
        @name = N'调度名称',
        @freq_type = 64     --64=在SQLServerAgent 服务启动时运行,128=计算机空闲时运行
--*/

--/*--只执行一次的作业调度
EXEC msdb..sp_add_jobschedule
        @job_id = @jobid,
        @name = N'调度名称',
        @freq_type=1,                --仅执行一次
        @active_start_date = NULL,   --作业执行的开始日期,为NULL时表示当前日期,格式为YYYYMMDD
        @active_start_time = 00000   --作业执行的开始时间,格式为HHMMSS

--创建bak文件
BACKUP DATABASE [UniRISCDB]
TO  DISK = N'd:\UniRISCDB_2013.bak' --bak文件存放位置
WITH NOFORMAT, NOINIT,  NAME = N'UniRISCDB-完整数据库备份',  
SKIP, NOREWIND, NOUNLOAD,  STATS = 10

--还原bak文件
RESTORE DATABASE [UniRISCDB] 
FROM  DISK = N'c:\backup\UniRISCDB_2013.bak'  --bak文件存放位
WITH  FILE = 1,  
MOVE N'UniRISCDB_data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\UniRISCDB.mdf',  --还原数据库存放位置
MOVE N'UniRISCDB_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\UniRISCDB.ldf',   --还原数据库存日志放位置
NOUNLOAD,  REPLACE,  STATS = 10

SQLServer:定时作业的更多相关文章

  1. sqlserver定时作业,定时执行存储过程

    首先,我想说,我真的是渣了,一个这个玩意弄了半天,算了,直接切入正题吧. 第一步: 先写好存储过程 用了两张表,你们自己建立吧 <br data-filtered="filtered& ...

  2. SqlServer:SqlServer(sql,游标,定时作业,行转列,列转行,公用表达式递归,merge合并)

    1.加载驱动: Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); DriverManager.getCo ...

  3. SQLServer2005创建定时作业任务

    SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...

  4. sqlSQL2008如何创建定时作业

    SQL2008如何创建定时作业?此方法也适应于Sql Server2005数据库,有兴趣的可以来看下! 1.打开[SQL Server Management Studio],在[对象资源管理器]列表中 ...

  5. sqlSQL2008如何创建定时作业(代理服务)(转)

    SQL2008如何创建定时作业?此方法也适应于Sql Server2005数据库,有兴趣的可以来看下! 1.打开[SQL Server Management Studio],在[对象资源管理器]列表中 ...

  6. SQL Server 2008 定时作业的制定(SQL2005参考此方法) 转

    --  Author : htl258(Tony)--  Date   : 2010-04-29 19:07:45--  Version:Microsoft SQL Server 2008 (RTM) ...

  7. 实习笔记-1:sql 2008r2 如何创建定时作业

    在公司实习了近一个月,学了很多东西.这一篇是一些比较基础的东西,本人是小菜鸟,不喜欢大神来喷.大神欢迎出门点右上角.谢谢~ 说大实话,对于数据库,我在还没出来实习的时候就是只懂写一些sql语句以及知道 ...

  8. SQL Server 如何创建定时作业

    在做SQL server 管理时,往往需要每日执行定时任务,但是如果每天都去人工执行,非常不方便,而且一般定时操作,都应该是在数据库压力不大时,一般是在夜间.所以我们需要创建定时作业来代替人工的执行定 ...

  9. SQL Server2012 创建定时作业——图文并茂,教你轻松快速创建

    SQL Server2012 如何创建定时作业?有兴趣的可以来看下,图文并茂哦! 1.首先我们打开SQL Server代理,里面选择作业 2.右键作业,选择新建作业 3.填写一些相应的内容,名称和说明 ...

随机推荐

  1. CSS定位(postion)和移动(float)

    5.定位和移动:Positioning(定位)CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧 ...

  2. 使用VisualSVN Server搭建SVN服务器(转载)

    转载于http://www.cnblogs.com/greywolf/archive/2013/01/28/2879952.html 使用 VisualSVN Server来实现主要的 SVN功能则要 ...

  3. Filter案例

    1.有选择的被访问 描述:首先若用户没有在页面提交注册(直接访问list.jsp),就只能被允许访问a.jsp.其他页面均不被允许访问 在login.jsp提交信息之后,可以在b.jsp访问, 代码如 ...

  4. editplus如何设置不自动备份

    依次选择:工具,参数设置,文件(默认展开的,要缩回),然后看右边“保存文件时创建备份”,前面的框不要打勾,应用,确定

  5. Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA

    版权声明:本文为博主原创文章,未经博主允许不得转载. [前言] 本文简单的介绍了加密技术相关概念,最后总结了java中现有的加密技术以及使用方法和例子 [最简单的加密] 1.简单的概念 明文:加密前的 ...

  6. inux设置普通用户无密码sudo权限

    配置普通用户无密码sudo权限: root用户进入到Linux系统的/etc目录下 cd /etc 将sudoers文件赋予写的权限 chmod u+w /etc/sudoers 编辑sudoers文 ...

  7. JVM笔记7:类加载器

    虚拟机设计团队把类加载阶段中的"通过一个类的全限定名来获取描述此类的二进制字节流"这个动作放到Java虚拟机外部实现,以便让应用程序自己决定如何去获取所需要的类,实现这个动作的代码 ...

  8. javascript 中的new操作符的理解

    new 操作符 在有上面的基础概念的介绍之后,在加上new操作符,我们就能完成传统面向对象的class + new的方式创建对象,在Javascript中,我们将这类方式成为Pseudoclassic ...

  9. [转]内嵌页面iframe以及和其兄弟iframe的相互传值

    原文出处 iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法) 主页面调用iframe: iframe页面调用主页面: 主页面的包含的iframe之间相互调用: 主 ...

  10. Fetch的使用

    import React,{ Component } from 'react'; import { AppRegistry, ListView, Image, Text, StyleSheet, Vi ...