sp_help_job
返回有关 SQLServerAgent 服务用来在 Microsoft® SQL Server™ 中执行自动活动的那些作业的信息。
语法
sp_help_job [ [ @job_id = ] job_id ]
[ , [ @job_name = ] 'job_name' ]
[ , [ @job_aspect = ] 'job_aspect' ]
[ , [ @job_type = ] 'job_type' ]
[ , [ @owner_login_name = ] 'login_name' ]
[ , [ @subsystem = ] 'subsystem' ]
[ , [ @category_name = ] 'category' ]
[ , [ @enabled = ] enabled ]
[ , [ @execution_status = ] status ]
[ , [ @date_comparator = ] 'date_comparison' ]
[ , [ @date_created = ] date_created ]
[ , [ @date_last_modified = ] date_modified ]
[ , [ @description = ] 'description_pattern' ]
参数
[@job_id =] job_id
是作业标识号。job_id 的数据类型为 uniqueidentifier,默认值为 NULL。
[@job_name =] 'job_name'
是作业的名称。job_name 为 sysname 类型,其默认值为 NULL。
<!--NOTE-->
说明 必须指定 job_id 或 job_name,但不能两个都指定。
<!--/NOTE-->
[@job_aspect =] 'job_aspect'
是要显示的作业特性。job_aspect 的数据类型为 varchar(9),默认值为 NULL,并且可以是下列值之一。
值
描述
ALL |
作业特征信息 |
JOB |
作业信息 |
SCHEDULES |
调度信息 |
STEPS |
作业步骤信息 |
TARGETS |
目标信息 |
[@job_type =] 'job_type'
是报表中要包括的作业类型。job_type 的数据类型为 varchar(12),默认值为 NULL。job_type 可以是 LOCAL 或 MULTI-SERVER。
[@owner_login_name =] 'login_name'
是作业所有者的登录名。login_name 的数据类型为 sysname,默认值为 NULL。
[@subsystem =] 'subsystem'
是对子系统的描述。subsystem 的数据类型为 nvarchar(60),默认设置为 NULL。
[@category_name =] 'category'
是分类名。category 的数据类型为 sysname,默认值为 NULL。
[@enabled =] enabled
是一个数字,表示是显示启用作业的信息,还是显示禁用作业的信息。enabled 的数据类型为 tinyint,默认值为 NULL。1 表示启用的作业,0 表示禁用的作业。
[@execution_status =] status
是作业的执行状态。status 的数据类型为 int,默认值为 NULL,而且可以是下列值之一。
值
描述
0 |
只返回那些空闲的或挂起的作业。 |
1 |
正在执行。 |
2 |
正在等待线程。 |
3 |
在两次重试之间。 |
4 |
空闲。 |
5 |
挂起。 |
7 |
正在执行完成操作。 |
[@date_comparator =] 'date_comparison'
是在 date_created 和 date_modified 的比较中所使用的比较运算符。date_comparison 的数据类型为 char(1),并且可以是 =、< 或 >。
[@date_created =] date_created
是创建作业的日期。date_created 的数据类型为 datetime,默认值为 NULL。
[@date_last_modified =] date_modified
是最后修改作业的日期。date_modified 的数据类型为 datetime,默认值为 NULL。
[@description =] 'description_pattern'
是作业的描述。description_pattern 的数据类型为 nvarchar(512),默认值为 NULL。description_pattern 可以包含 SQL Server 通配符,以实现模式匹配。
返回代码值
0(成功)或 1(失败)
结果集
如果没有指定参数,那么 sp_help_job 返回下面的结果集。
列名
数据类型
描述
job_id |
uniqueidentifier |
作业的唯一 ID。 |
originating_server |
nvarchar(30) |
作业来自的服务器名称。 |
name |
sysname |
作业的名称。 |
enabled |
tinyint |
表示是否启用待执行的作业。 |
description |
nvarchar(512) |
对作业的描述。 |
start_step_id |
int |
执行作业的起始步骤 ID。 |
category |
sysname |
作业分类。 |
owner |
sysname |
作业所有者。 |
notify_level_eventlog |
int |
位掩码,它表示在何种情况下通知事件应记录到 Microsoft Windows NT® 应用程序日志中。可以是下列值之一:
0 = 从不 1 = 当作业成功时 2 = 当作业失败时 3 = 当作业完成时(无论作业结果如何)
|
notify_level_email |
int |
位掩码,它指明当作业完成时,在什么情况下应该发送一个提示电子邮件。可能值与 notify_level_eventlog 的可能值相同。 |
notify_level_netsend |
int |
位掩码,它指明当作业完成时,在什么情况下应该发送一个网络消息。可能值与 notify_level_eventlog 的可能值相同。 |
notify_level_page |
int |
位掩码,它指明当作业完成时,在什么情况下应该发送一个呼叫。可能值与 notify_level_eventlog 的可能值相同。 |
notify_email_operator |
sysname |
要通知的操作员的电子邮件名称。 |
notify_netsend_operator |
sysname |
当发送网络消息时,所使用的计算机或用户的名称。 |
notify_page_operator |
sysname |
当发送寻呼时,所使用的计算机或用户的名称。 |
delete_level |
int |
位掩码,它指明当作业完成时,在什么情况下应该删除作业。可能值与 notify_level_eventlog 的可能值相同。 |
date_created |
datetime |
作业的创建日期。 |
date_modified |
datetime |
上次修改作业的日期。 |
version_number |
int |
作业的版本(每次修改作业时都自动对其进行更新)。 |
last_run_date |
int |
作业上一次开始执行的日期。 |
last_run_time |
int |
作业上一次开始执行的时间。 |
last_run_outcome |
int |
作业上一次运行时所得到的结果:
0 = 失败 1 = 成功 3 = 取消 5 = 未知
|
next_run_date |
int |
调度作业下一次运行的日期。 |
next_run_time |
int |
调度作业下一次运行的时间。 |
next_run_schedule_id |
int |
下一个运行的调度的标识号。 |
current_execution_status |
int |
当前的执行状态。 |
current_execution_step |
sysname |
作业中当前的执行步骤。 |
current_retry_attempt |
int |
如果作业正在运行,并且已经重试过该步骤,那么这就是当前的重试尝试。 |
has_step |
int |
作业具有的作业步骤的个数。 |
has_schedule |
int |
作业具有的作业调度的个数。 |
has_target |
int |
作业具有的目标服务器的个数。 |
Type |
int |
1 = 本地作业。 2 = 多服务器作业。 0 = 作业没有目标服务器。 |
如果指定了 job_id 或 job_name,那么 sp_help_job 针对作业步骤、作业调度及作业目标服务器返回下面这些额外的结果集。
下面是针对作业步骤的结果集。
列名
数据类型
描述
step_id |
int |
步骤的唯一(是针对该作业的)标识符。 |
step_name |
sysname |
步骤的名称。 |
Subsystem |
nvarchar(40) |
子系统,在该子系统中执行步骤命令。 |
Command |
nvarchar(3200) |
执行的命令。 |
Flags |
nvarchar(4000) |
控制步骤行为的值的位掩码。 |
cmdexec_success_code |
int |
对于CmdExec 步骤,这是成功命令的进程退出代码。 |
on_success_action |
nvarchar(4000) |
步骤成功时的操作:
1 = 成功后退出。 2 = 失败后退出。 3 = 转到下一步。 4 = 转至步骤。
|
on_success_step_id |
int |
如果 on_success_action 为 4,即指明下一步执行步骤 4。 |
on_fail_action |
nvarchar(4000) |
步骤失败时所采取的操作。值与 on_success_action 的值相同。 |
on_fail_step_id |
int |
如果 on_fail_action 为 4,即指明下一步执行步骤 4。 |
Server |
sysname |
保留。 |
database_name |
sysname |
对于 Transact=SQL 步骤,这是将要在其中执行命令的数据库。 |
database_user_name |
sysname |
对于 Transact=SQL 步骤,这是数据库用户上下文,命令将在这个数据库用户上下文中执行。 |
retry_attempts |
int |
在将步骤认定为已经失败之前,应该对命令进行重试的最大次数(如果命令没有成功)。 |
retry_interval |
int |
两次重试尝试之间的间隔(以分钟为单位)。 |
os_run_priority |
varchar(4000) |
保留。 |
output_file_name |
varchar(200) |
应该将命令的输出写入到其中的文件(只针对 Transact=SQL 及 CmdExec 步骤)。 |
last_run_outcome |
int |
步骤上一次运行的结果:
0 = 失败 1 = 成功 3 = 取消 5 = 未知
|
last_run_duration |
int |
步骤上一次运行的持续时间(以秒为单位)。 |
last_run_retries |
int |
步骤上一次运行时,命令进行重试的次数。 |
last_run_date |
int |
步骤上一次开始执行的日期。 |
last_run_time |
int |
步骤上一次开始执行的时间。 |
下面是针对作业调度的结果集。
列名
数据类型
描述
schedule_id |
int |
调度的标识符(对所有作业是唯一的)。 |
schedule_name |
sysname |
调度的名称(只对这个作业是唯一的)。 |
Enabled |
int |
指明调度是活动的 (1) 还是不活动的 (0)。 |
freq_type |
int |
指明何时执行作业的值:
1 = 一次 4 = 每日一次 8 = 每周一次 16 = 每月一次 32 = 每月一次,与 freq_interval 相关 64 = 在 SQLServerAgent 服务启动时运行。
|
freq_interval |
int |
执行作业的日子。该值依赖于 freq_type 的值。有关更多信息,请参见 sp_add_jobschedule。 |
freq_subday_type |
int |
freq_subday_interval 的单位。有关更多信息,请参见 sp_add_jobschedule。 |
freq_subday_interval |
int |
在作业的每次执行之间所发生的 freq_subday_type 的周期个数。有关更多信息,请参见 sp_add_jobschedule。 |
freq_relative_interval |
int |
在每个月中,freq_interval 的已调度作业的发生情况。有关更多信息,请参见 sp_add_jobschedule。 |
freq_recurrence_factor |
int |
作业的已调度执行日期之间的间隔月数。 |
active_start_date |
int |
开始执行作业的日期。 |
active_end_date |
int |
结束执行作业的日期。 |
active_start_time |
int |
在 active_start_date 那一天,开始执行作业的时间。 |
active_end_time |
int |
在 active_end_date 那一天,结束执行作业的时间。 |
date_created |
datetime |
创建调度的日期。 |
schedule_description |
nvarchar(4000) |
对调度的英语描述(如果需要的话)。 |
next_run_date |
int |
调度下一次引发作业运行的日期。 |
next_run_time |
int |
调度下一次引发作业运行的时间。 |
下面是针对目标服务器的结果集。
列名
数据类型
描述
server_id |
int |
目标服务器的标识符。 |
server_name |
nvarchar(30) |
目标服务器的计算机名称。 |
enlist_date |
datetime |
将目标服务器登记到主服务器 (MSX) 的日期。 |
last_poll_date |
datetime |
目标服务器上一次轮询 MSX 的日期。 |
last_run_date |
int |
在这个目标服务器上,作业上一次开始执行的日期。 |
last_run_time |
int |
在这个目标服务器上,作业上一次开始执行的时间。 |
last_run_duration |
int |
作业上一次在这个目标服务器上运行的持续时间。 |
last_run_outcome |
tinyint |
作业上一次在这个服务器上运行的结果:
0 = 失败 1 = 成功 3 = 取消 5 = 未知
|
last_outcome_message |
nvarchar(1024) |
作业上一次在这个目标服务器上运行时的结果消息。 |
权限
执行权限默认授予 msdb 数据库中的 public 角色。可以执行该过程的用户和 sysadmin 固定角色成员的用户都可以对下列内容进行创建、删除或更新操作:作业、作业步骤、作业分类、作业调度、作业服务器、任务或作业历史信息。
非 sysadmin 固定角色成员的用户可使用 sp_help_job 只查看自己的作业。
当由 sysadmin 固定服务器角色成员的用户唤醒调用 sp_help_job 时,将在运行 SQL Server 服务的安全上下文中执行 sp_help_job。当用户不是 sysadmin 组的成员时,sp_help_job 将模拟 SQL Server 代理的代理帐户,该帐户是使用 xp_sqlagent_proxy_account 指定的。如果代理帐户不可用,则 sp_help_job 将失败。仅对于 Microsoft® Windows NT® 4.0 和 Windows 2000 才如此。在 Windows 9.x 上无模拟,并且始终在启动 Windows 9.x 的用户的安全上下文中执行 sp_help_job。
示例
A. 列出所有作业的信息
下面的示例执行不带参数的 sp_help_job 过程,从而为当前在 msdb 数据库中定义的所有作业返回信息。
USE msdb
EXEC sp_help_job
B. 列出特定作业的信息
下面的示例列出了名为 Archive Tables 的多服务器作业的所有作业特征信息,该作业在其中启用,并且自创建以来已经被更改。
USE msdb
EXEC sp_help_job NULL, 'Archive Tables', 'ALL', 'MULTI-SERVER', 'janetl',
NULL, NULL, 1, 1, '<', '12/01/97', '6/25/98', NULL
分享到:
相关推荐
`sql sp_help` 是一个非常实用的 Transact-SQL 存储过程,它提供有关 SQL Server 数据库中各种对象的详细信息。对于初学者来说,它是一个很好的学习工具,可以帮助理解表的结构、属性和数据类型。下面我们将深入探讨...
《SQL Server 2012企业版:数据库管理与优化的旗舰级解决方案》 SQL Server 2012是微软公司推出的一款强大的关系型数据库管理系统(RDBMS),特别是其企业版,集成了广泛的功能和高级特性,为大型企业和组织提供了...
cn_sql_server_2012_enterprise_edition_with_sp1_x64_dvd_1234495.iso sqlserver2012完整版数据库下载
`sp_executesql`还支持输出参数,这意味着可以在执行动态SQL后获取结果集之外的信息。例如: ```sql DECLARE @sql NVARCHAR(MAX); DECLARE @OrderID INT; DECLARE @RowCount INT OUTPUT; SET @OrderID = 10251; SET ...
SQL Server Agent 是一种 Windows 服务,主要负责在 SQL Server 上执行计划任务。这些任务可以包括但不限于备份数据库、执行存储过程或脚本等。由于 SQL Server 的用户权限仅限于 SQL Server 范围内,因此当任务需要...
Microsoft® SQL Server® 2008 R2 SP3 功能包是为 Microsoft® SQL Server® 2008 R2 提供附加值的独立包的集合。 提供的包含有下列软件的最新版本: Microsoft® SQL Server® 2008 R2 SP3 可再发行组件 ...
在SQL Server中,动态执行SQL语句有两个主要的命令:`EXEC`和`SP_EXECUTESQL`。两者都用于在运行时执行SQL语句,但它们之间存在显著的区别。 一、EXEC `EXEC`命令可以执行存储过程或者动态SQL语句。当我们需要执行...
- 在SQL Server Configuration Manager中可以找到并启动SQL Server Agent服务。 #### 三、调用系统存储过程方法 1. **使用系统存储过程`sp_add_job`和`sp_add_jobstep`**: - `sp_add_job`用于创建一个新的作业...
在SQL Server中,`xp_cmdshell`是一个非常特殊的扩展存储过程,它允许数据库管理员(DBA)在服务器级别执行操作系统命令。这个过程的强大之处在于它能够直接与Windows操作系统进行交互,比如创建文件、运行批处理...
未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...
在SQL Server 2000中,定时计划job是一项重要的管理功能,允许用户安排自动执行的任务,例如数据清理。在上述场景中,我们利用这个特性来实现对离港信息表dyndepflt的定期维护,确保数据库保持高效运行并节省存储...
在SQL Server环境中,SQLServerAgent是一项非常重要的服务,它负责执行计划的任务,如定期备份、维护计划、警报以及作业等。当用户尝试启动SQL作业时,如果出现“错误22022:SQLServerAgent当前未运行,因此,无法就...
SQL Server 2005 SP4(Service Pack 4)是微软针对其关系型数据库管理系统SQL Server 2005发布的一个重要更新。这个服务包包含了大量的修复程序、安全更新和性能优化,旨在提高SQL Server 2005的稳定性和安全性。SP4...
在SQL Server中,通过创建作业可以实现定时执行特定的任务,比如定期备份数据库、清理日志、执行数据同步等操作。这不仅可以提高系统的自动化程度,还能确保关键任务按照预定的时间表执行。 #### 二、创建作业的...
Microsoft SQL Server 2008 Native Client (SQL Server Native Client) 是单一动态链接库 (DLL),其中包含 SQL OLE DB 提供者和 SQL ODBC 驱动程序。此链接库针对使用机器码 API (ODBC、OLE DB 和 ADO) 的应用程序...
**Microsoft SQL Server Compact 4.0 SP1** 是微软推出的一款轻量级、嵌入式数据库引擎,适用于桌面和移动应用程序。SQL Server Compact (简称 SQL CE) 提供了与 SQL Server 相似的功能,但无需独立服务器环境,使得...
这里,`sp_OACreate`接受目标对象的ProgID(在本例中为`Excel.Application`),并返回对象标记`@Object`,后者在后续操作中用于标识和操作对象。 #### 应用场景与优势 通过COM自动服务,SQL Server能够与各种外部...
SQL Server 2000 Service Pack 4 (SP4) 是微软发布的一个重要更新,用于增强其数据库管理系统SQL Server 2000的功能、稳定性和安全性。这个补丁集成了自SQL Server 2000发布以来的所有累积更新,包括性能优化、安全...
SQL Server 2012 Express Management Studio x64是一款专为64位操作系统设计的数据库管理系统,由微软公司开发,用于管理和操作SQL Server数据库。在这款工具中,用户可以进行数据存储、查询、分析和报表制作等一...