作业介绍

SQL SERVER的作业是一系列由SQLSERVER代理按顺序执行的指定操作。作业可以执行一系列活动,包括运行Transact-SQL脚本、命令行应用程序、Microsoft ActiveX脚本、IntegrationServices 包、Analysis Services 命令和查询或复制任务。作业可以运行重复任务或那些可计划的任务,它们可以通过生成警报来自动通知用户作业状态,从而极大地简化了SQL Server 管理[参见MSDN]。

创建作业、删除作业、查看作业历史记录....等所有操作都可以通过SSMS管理工具GUI界面操作,有时候也确实挺方便的。但是当一个实例有多个作业或多个数据库实例时,通过图形化的界面去管理、维护作业也是个头痛的问题,对于SQL脚本与GUI界面管理维护作业熟优熟劣这个问题,只能说要看场合。下面主要介绍通过SQL脚本来管理、维护作业。

作业分类

创建作业时,往往需要指定作业类别,如果不指定新建作业类别,就会默认为“[未分类(本地)]”,如下截图所示:

当然,你可以查看、添加、删除、修改作业分类。请看下面操作。

1:查看作业分类

Code Snippet

--method 1:

EXECmsdb.dbo.sp_help_category;

GO

--method 2:

SELECT  category_id            ,--作业类别ID

category_class         ,--类别中项目类型:1=作业2=警报 3=操作员

category_type          ,--类别中类型:=本地、=多服务器、=无

name                    --分类名称

FROMmsdb.dbo.syscategories

有兴趣的可以研究一下存储过程msdb.dbo.sp_help_category

SETQUOTED_IDENTIFIER OFF

SET ANSI_NULLS ON

GO

CREATEPROCEDUREsp_help_category

@class  VARCHAR(8)  ='JOB',

@type   VARCHAR(12)  =NULL,

@name  sysname      =NULL,

@suffixBIT         =0

AS

BEGIN

DECLARE@retval        INT

DECLARE@type_in       VARCHAR(12)

DECLARE@category_type  INT

DECLARE@category_classINT

DECLARE@where_clause   NVARCHAR(255)

DECLARE@cmd           NVARCHAR(255)

SET NOCOUNT ON

SELECT@class=LTRIM(RTRIM(@class))

SELECT@type  =LTRIM(RTRIM(@type))

SELECT@name  =LTRIM(RTRIM(@name))

IF (@type='') SELECT@type=NULL

IF (@name= N'') SELECT@name=NULL

IF (@class='JOB') AND (@typeISNULL)

SELECT@type_in='LOCAL'

ELSE

IF (@class<>'JOB') AND (@typeISNULL)

SELECT@type_in='NONE'

ELSE

SELECT@type_in=@type

EXECUTE@retval= sp_verify_category@class,

@type_in,

NULL,

@category_class OUTPUT,

@category_type  OUTPUT

IF (@retval<>0)

RETURN(1)

IF (@suffix<>0)

SELECT@suffix=1

IF@nameISNOTNULLAND

NOTEXISTS(SELECT*FROMmsdb.dbo.syscategories WHERE name =@name

AND category_class=@category_class)

BEGIN

DECLARE@category_class_stringNVARCHAR(25)

SET@category_class_string=CAST(@category_classASnvarchar(25))

RAISERROR(14526, -1, -1, @name, @category_class_string)

RETURN(1)

END

SELECT@where_clause= N'WHERE (category_class= '+CONVERT(NVARCHAR, @category_class) + N') '

IF (@nameISNOTNULL)

SELECT@where_clause=@where_clause+ N'AND (name = N'+QUOTENAME(@name, '''') + N') '

IF (@typeISNOTNULL)

SELECT@where_clause=@where_clause+ N'AND (category_type= '+CONVERT(NVARCHAR, @category_type) + N') '

SELECT@cmd= N'SELECTcategory_id, '

IF (@suffix=1)

BEGIN

SELECT@cmd=@cmd+ N'''category_type''= '

SELECT@cmd=@cmd+ N'CASEcategory_type '

SELECT@cmd=@cmd+ N'WHEN 0 THEN''NONE'''

SELECT@cmd=@cmd+ N'WHEN 1 THEN''LOCAL'''

SELECT@cmd=@cmd+ N'WHEN 2 THEN''MULTI-SERVER'''

SELECT@cmd=@cmd+ N'WHEN 3 THEN''NONE'''

SELECT@cmd=@cmd+ N'ELSEFORMATMESSAGE(14205) '

SELECT@cmd=@cmd+ N'END, '

END

ELSE

BEGIN

SELECT@cmd=@cmd+ N'category_type,'

END

SELECT@cmd=@cmd+ N'name '

SELECT@cmd=@cmd+ N'FROMmsdb.dbo.syscategories '

EXECUTE (@cmd+@where_clause+ N'ORDER BYcategory_type, name')

RETURN(@@error)

END

GO

sp_help_category

2:添加作业分类

如下所示,添加一个叫"DBA_MONITORING"的作业分类

Code Snippet

EXECmsdb.dbo.sp_add_category

@class=N'JOB',

@type=N'LOCAL',

@name=N'DBA_MONITORING' ;

GO

SELECT * FROMmsdb.dbo.syscategories WHERE NAME='DBA_MONITORING'

category_id category_class category_type    name

------------------------- ------------- -------------

102         1              1             DBA_MONITORING

有兴趣的可以研究一下存储过程msdb.dbo.sp_add_category

SET QUOTED_IDENTIFIER OFF

SET ANSI_NULLS ON

GO

CREATEPROCEDUREsp_add_category

@classVARCHAR(8)  ='JOB',

@type  VARCHAR(12)  ='LOCAL',

@name  sysname

AS

BEGIN

DECLARE@retval         INT

DECLARE@category_type  INT

DECLARE@category_classINT

SET NOCOUNT ON

SELECT@class=LTRIM(RTRIM(@class))

SELECT@type  =LTRIM(RTRIM(@type))

SELECT@name  =LTRIM(RTRIM(@name))

EXECUTE@retval= sp_verify_category @class,

@type,

@name,

@category_class OUTPUT,

@category_type  OUTPUT

IF (@retval<>0)

RETURN(1)

IF (EXISTS (SELECT*

FROM msdb.dbo.syscategories

WHERE (category_class =@category_class)

AND (name =@name)))

BEGIN

RAISERROR(14261, -1, -1, '@name', @name)

RETURN(1)

END

INSERTINTOmsdb.dbo.syscategories (category_class, category_type, name)

VALUES (@category_class, @category_type, @name)

RETURN(@@error)

END

GO

3:删除作业分类

如下所示,删除一个叫"DBA_MONITORING" 的作业分类

Code Snippet

EXECmsdb.dbo.sp_delete_category

@name=N'DBA_MONITORING',

@class=N'JOB';

GO

有兴趣的可以研究一下存储过程msdb.dbo.sp_delete_category

转载于:https://blog.51cto.com/57388/1846689

SQL Server -- 作业(Job) 浅析1相关推荐

  1. SQL SERVER作业的Schedules浅析

    SQL SERVER作业的计划(Schedules),如果你没仔细研究过或没有应用一些复杂的计划(Schedules),那么你觉得SQL SERVER作业的计划(Schedules)非常好用,也没啥问 ...

  2. sql server作业_SQL Server作业性能–报告

    sql server作业 描述 (Description) Once collected, job performance metrics can be used for a variety of r ...

  3. sql server作业_在SQL Server中报告作业失败并发出警报

    sql server作业 SQL Server Agent can be used to run a wide variety of tasks within SQL Server. The buil ...

  4. SQL Server 作业监控

    原文:SQL Server 作业监控 在讲解SQLServer Agent Jobs之前,先要讲解msdb. Msdb是SQLServer的系统数据库之一,用于存储SQLServer的配置.元数据等信 ...

  5. 使用SQL Server作业设置定时任务

    1.开启SQL Server Agent服务 使用作业需要SQL Agent服务的支持,并且需要设置为自动启动,否则你的作业不会被执行. 以下步骤开启服务:开始-->>>运行--&g ...

  6. MySql,Sql Server分区技术浅析

    一.MySql MySql在5.1以后的版本中加入了分区技术,其不同于以往的分表技术,之前的分表技术是把一张大的表水平(按照一定的逻辑)分成多张表,比如如果我们的User表中有1000万条数据,那如果 ...

  7. MS Sql Server 作业编辑报错以及不显示历史记录

    如下图: 解决方法: 1.开始->运行,输入dcomcnfg.exe 2.打开组件服务器->计算机->我的电脑->DCOM配置: 3.找到Microsoft Office Ex ...

  8. sql server 作业收缩数据库

    USE[master]GOALTER DATABASE PayFlow2 SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE PayFlow2 SET R ...

  9. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮("开始备份数据库"按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sq ...

最新文章

  1. word文档内容如何防止被复制
  2. 2017年如何成为全栈工程师,这些技能是你必须具备的!
  3. java启动scrapy爬虫,爬虫入门之Scrapy 框架基础功能(九)详解
  4. SQL疑难杂症【4 】大量数据查询的时候避免子查询
  5. MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法
  6. android代码重启设备,Android设备重启(reboot)---Android studio
  7. SQLite学习笔记(三)--创建内存数据库
  8. CS231n——编程作业环境配置
  9. 常用工具下载及在线地址
  10. 02. Prefer consts, enums, and inlines to #defines
  11. 控件无法安装的问题-Unable to execute file
  12. u8服务器配置维护,u8客户端连接服务器配置
  13. 微信小程序可视化开发工具之动态数据
  14. srb (bug篇)
  15. Openlayers + Vue实现GIS地图的一些常见问题(整理)
  16. 产品经理:能不能让这串数字滚动起来?
  17. 基于Ant Design vue框架之三 删除功能细分
  18. 长芯微LCM1118 16 位模数转换器 P2P替代ADS1118
  19. 《科学之路》读书笔记
  20. Vue 实现页面一键截屏功能

热门文章

  1. Linux / Ubuntu在命令行下载安装Flash插件(无需官网下载tar包)
  2. 90后、00后都开始喝茶养生了
  3. 宝塔linux怎么操作,宝塔linux面板 怎么操作
  4. Java基础知识之什么是集合框架
  5. 盗心贼歌曲用计算机多少数字,盗心贼歌词 黑龙盗心贼LRC歌词
  6. java入门小项目,简单实现增删改查功能
  7. winform直接控制云台_大疆手机云台 DJI OM 4 正式发布:磁吸拍出吸引力
  8. Smail语言 switch case 还原Java逆向分析
  9. 线性回归原理与python实现
  10. 特殊字符的html编码和十进制编码