---
title: "sp_help_job (Transact-SQL) | Microsoft Docs"
ms.custom: ""
ms.date: "08/02/2016"
ms.prod: sql
ms.prod_service: "database-engine"
ms.reviewer: ""
ms.technology: system-objects
ms.topic: "language-reference"
f1_keywords:
- "sp_help_job_TSQL"
- "sp_help_job"
dev_langs:
- "TSQL"
helpviewer_keywords:
- "sp_help_job"
ms.assetid: 8a8b6104-e0e4-4d07-a2c3-f4243ee0d6fa
author: "stevestein"
ms.author: "sstein"
---
# sp_help_job (Transact-SQL)
[!INCLUDE[tsql-appliesto-ss2008-xxxx-xxxx-xxx-md](../../includes/tsql-appliesto-ss2008-xxxx-xxxx-xxx-md.md)]
Returns information about jobs that are used by [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Agent to perform automated activities in [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)].
 [Transact-SQL Syntax Conventions](../../t-sql/language-elements/transact-sql-syntax-conventions-transact-sql.md)
## Syntax
```
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' ]
```
## Arguments
`[ @job_id = ] job_id`
The job identification number. *job_id* is **uniqueidentifier**, with a default of NULL.
`[ @job_name = ] 'job_name'`
The name of the job. *job_name* is **sysname**, with a default of NULL.
> [!NOTE]
> To view a specific job, either *job_id* or *job_name* must be specified. Omit both *job_id* and *job_name* to return information about all jobs.
`[ @job_aspect = ] 'job_aspect'`
The job attribute to display. *job_aspect* is **varchar(9)**, with a default of NULL, and can be one of these values.
|Value|Description|
|-----------|-----------------|
|**ALL**|Job aspect information|
|**JOB**|Job information|
|**SCHEDULES**|Schedule information|
|**STEPS**|Job step information|
|**TARGETS**|Target information|
`[ @job_type = ] 'job_type'`
The type of jobs to include in the report. *job_type* is **varchar(12)**, with a default of NULL. *job_type* can be **LOCAL** or **MULTI-SERVER**.
`[ @owner_login_name = ] 'login_name'`
The login name of the owner of the job. *login_name* is **sysname**, with a default of NULL.
`[ @subsystem = ] 'subsystem'`
The name of the subsystem. *subsystem* is **nvarchar(40)**, with a default of NULL.
`[ @category_name = ] 'category'`
The name of the category. *category* is **sysname**, with a default of NULL.
`[ @enabled = ] enabled`
A number indicating whether information is shown for enabled jobs or disabled jobs. *enabled* is **tinyint**, with a default of NULL. **1** indicates enabled jobs, and **0** indicates disabled jobs.
`[ @execution_status = ] status`
The execution status for the jobs. *status* is **int**, with a default of NULL, and can be one of these values.
|Value|Description|
|-----------|-----------------|
|**0**|Returns only those jobs that are not idle or suspended.|
|**1**|Executing.|
|**2**|Waiting for thread.|
|**3**|Between retries.|
|**4**|Idle.|
|**5**|Suspended.|
|**7**|Performing completion actions.|
`[ @date_comparator = ] 'date_comparison'`
The comparison operator to use in comparisons of *date_created* and *date_modified*. *date_comparison* is **char(1)**,and can be =, \<, or >.
`[ @date_created = ] date_created`
The date the job was created. *date_created*is **datetime**, with a default of NULL.
`[ @date_last_modified = ] date_modified`
The date the job was last modified. *date_modified* is **datetime**, with a default of NULL.
`[ @description = ] 'description_pattern'`
The description of the job. *description_pattern* is **nvarchar(512)**, with a default of NULL. *description_pattern* can include the SQL Server wildcard characters for pattern matching.
## Return Code Values
**0** (success) or **1** (failure)
## Result Sets
If no arguments are specified, **sp_help_job** returns this result set.
|Column name|Data type|Description|
|-----------------|---------------|-----------------|
|**job_id**|**uniqueidentifier**|Unique ID of the job.|
|**originating_server**|**nvarchar(30)**|Name of the server from which the job came.|
|**name**|**sysname**|Name of the job.|
|**enabled**|**tinyint**|Indicates whether the job is enabled to be executed.|
|**description**|**nvarchar(512)**|Description for the job.|
|**start_step_id**|**int**|ID of the step in the job where execution should begin.|
|**category**|**sysname**|Job category.|
|**owner**|**sysname**|Job owner.|
|**notify_level_eventlog**|**int**|**Bitmask** indicating under what circumstances a notification event should be logged to the Microsoft Windows application log. Can be one of these values:
**0** = Never
**1** = When a job succeeds
**2** = When the job fails
**3** = Whenever the job completes (regardless of the job outcome)|
|**notify_level_email**|**int**|**Bitmask** indicating under what circumstances a notification e-mail should be sent when a job completes. Possible values are the same as for **notify_level_eventlog**.|
|**notify_level_netsend**|**int**|**Bitmask** indicating under what circumstances a network message should be sent when a job completes. Possible values are the same as for **notify_level_eventlog**.|
|**notify_level_page**|**int**|**Bitmask** indicating under what circumstances a page should be sent when a job completes. Possible values are the same as for **notify_level_eventlog**.|
|**notify_email_operator**|**sysname**|E-mail name of the operator to notify.|
|**notify_netsend_operator**|**sysname**|Name of the computer or user used when sending network messages.|
|**notify_page_operator**|**sysname**|Name of the computer or user used when sending a page.|
|**delete_level**|**int**|**Bitmask** indicating under what circumstances the job should be deleted when a job completes. Possible values are the same as for **notify_level_eventlog**.|
|**date_created**|**datetime**|Date the job was created.|
|**date_modified**|**datetime**|Date the job was last modified.|
|**version_number**|**int**|Version of the job (automatically updated each time the job is modified).|
|**last_run_date**|**int**|Date the job last started execution.|
|**last_run_time**|**int**|Time the job last started execution.|
|**last_run_outcome**|**int**|Outcome of the job the last time it ran:
**0** = Failed
**1** = Succeeded
**3** = Canceled
**5** = Unknown|
|**next_run_date**|**int**|Date the job is scheduled to run next.|
|**next_run_time**|**int**|Time the job is scheduled to run next.|
|**next_run_schedule_id**|**int**|Identification number of the next run schedule.|
|**current_execution_status**|**int**|Current execution status:
**1** = Executing
**2** = Waiting For Thread
**3** = Between Retries
**4** = Idle
**5** = Suspended
**6** = Obsolete
**7** = PerformingCompletionActions|
|**current_execution_step**|**sysname**|Current execution step in the job.|
|**current_retry_attempt**|**int**|If the job is running and the step has been retried, this is the current retry attempt.|
|**has_step**|**int**|Number of job steps the job has.|
|**has_schedule**|**int**|Number of job schedules the job has.|
|**has_target**|**int**|Number of target servers the job has.|
|**type**|**int**|Type of the job.
1 = Local job.
**2** = Multiserver job.
**0** = Job has no target servers.|
If *job_id* or *job_name* is specified, **sp_help_job** returns these additional result sets for job steps, job schedules, and job target servers.
This is the result set for job steps.
|Column name|Data type|Description|
|-----------------|---------------|-----------------|
|**step_id**|**int**|Unique (for this job) identifier for the step.|
|**step_name**|**sysname**|Name of the step.|
|**subsystem**|**nvarchar(40)**|Subsystem in which to execute the step command.|
|**command**|**nvarchar(3200)**|Command to execute.|
|**flags**|**nvarchar(4000)**|**Bitmask** of values that control step behavior.|
|**cmdexec_success_code**|**int**|For a **CmdExec** step, this is the process exit code of a successful command.|
|**on_success_action**|**nvarchar(4000)**|What to do if the step succeeds:
**1** = Quit with success.
**2** = Quit with failure.
**3** = Go to next step.
**4** = Go to step.|
|**on_success_step_id**|**int**|If **on_success_action** is **4**, this indicates the next step to execute.|
|**on_fail_action**|**nvarchar(4000)**|Action to take if the step fails. Values are the same as for **on_success_action**.|
|**on_fail_step_id**|**int**|If **on_fail_action** is **4**, this indicates the next step to execute.|
|**server**|**sysname**|Reserved.|
|**database_name**|**sysname**|For a [!INCLUDE[tsql](../../includes/tsql-md.md)] step, this is the database in which the command will executes.|
|**database_user_name**|**sysname**|For a [!INCLUDE[tsql](../../includes/tsql-md.md)] step, this is the database user context in which the command executes.|
|**retry_attempts**|**int**|Maximum number of times the command should be retried (if it is unsuccessful) before the step is deemed to have failed.|
|**retry_interval**|**int**|Interval (in minutes) between any retry attempts.|
|**os_run_priority**|**varchar(4000)**|Reserved.|
|**output_file_name**|**varchar(200)**|File to which command output should be written ([!INCLUDE[tsql](../../includes/tsql-md.md)] and **CmdExec** steps only).|
|**last_run_outcome**|**int**|Outcome of the step the last time it ran:
**0** = Failed
**1** = Succeeded
**3** = Canceled
**5** = Unknown|
|**last_run_duration**|**int**|Duration (in seconds) of the step the last time it ran.|
|**last_run_retries**|**int**|Number of times the command was retried the last time the step ran.|
|**last_run_date**|**int**|Date the step last started execution.|
|**last_run_time**|**int**|Time the step last started execution.|
|**proxy_id**|**int**|Proxy for the job step.|
This is the result set for job schedules.
|Column name|Data type|Description|
|-----------------|---------------|-----------------|
|**schedule_id**|**int**|Identifier of the schedule (unique across all jobs).|
|**schedule_name**|**sysname**|Name of the schedule (unique for this job only).|
|**enabled**|**int**|Whether the schedule is active (**1**) or not (**0**).|
|**freq_type**|**int**|Value indicating when the job is to be executed:
**1** = Once
**4** = Daily
**8** = Weekly
**16** = Monthly
**32** = Monthly, relative to the **freq_interval**
**64** = Run when **SQLServerAgent** service starts.|
|**freq_interval**|**int**|Days when the job is executed. The value depends on the value of **freq_type**. For more information, see [sp_add_schedule (Transact-SQL)](../../relational-databases/system-stored-procedures/sp-add-schedule-transact-sql.md)|
|**freq_subday_type**|**Int**|Units for **freq_subday_interval**. For more information, see [sp_add_schedule (Transact-SQL)](../../relational-databases/system-stored-procedures/sp-add-schedule-transact-sql.md)|
|**freq_subday_interval**|**int**|Number of **freq_subday_type** periods to occur between each execution of the job. For more information, see [sp_add_schedule (Transact-SQL)](../../relational-databases/system-stored-procedures/sp-add-schedule-transact-sql.md)|
|**freq_relative_interval**|**int**|Scheduled job's occurrence of the **freq_interval** in each month. For more information, see [sp_add_schedule (Transact-SQL)](../../relational-databases/system-stored-procedures/sp-add-schedule-transact-sql.md)|
|**freq_recurrence_factor**|**int**|Number of months between the scheduled execution of the job.|
|**active_start_date**|**int**|Date to begin execution of the job.|
|**active_end_date**|**int**|Date to end execution of the job.|
|**active_start_time**|**int**|Time to begin the execution of the job on **active_start_date.**|
|**active_end_time**|**int**|Time to end execution of the job on **active_end_date**.|
|**date_created**|**datetime**|Date the schedule is created.|
|**schedule_description**|**nvarchar(4000)**|An English description of the schedule (if requested).|
|**next_run_date**|**int**|Date the schedule will next cause the job to run.|
|**next_run_time**|**int**|Time the schedule will next cause the job to run.|
|**schedule_uid**|**uniqueidentifier**|Identifier for the schedule.|
|**job_count**|**int**|Returns the number of jobs that reference this schedule.|
This is the result set for job target servers.
|Column name|Data type|Description|
|-----------------|---------------|-----------------|
|**server_id**|**int**|Identifier of the target server.|
|**server_name**|**nvarchar(30)**|Computer name of the target server.|
|**enlist_date**|**datetime**|Date the target server enlisted into the master server.|
|**last_poll_date**|**datetime**|Date the target server last polled the master server.|
|**last_run_date**|**int**|Date the job last started execution on this target server.|
|**last_run_time**|**int**|Time the job last started execution on this target server.|
|**last_run_duration**|**int**|Duration of the job the last time it ran on this target server.|
|**last_run_outcome**|**tinyint**|Outcome of the job the last time it ran on this server:
**0** = Failed
**1** = Succeeded
**3** = Canceled
**5** = Unknown|
|**last_outcome_message**|**nvarchar(1024)**|Outcome message from the job the last time it ran on this target server.|
## Permissions
By default, members of the **sysadmin** fixed server role can execute this stored procedure. Other users must be granted one of the following [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Agent fixed database roles in the **msdb** database:
- **SQLAgentUserRole**
- **SQLAgentReaderRole**
- **SQLAgentOperatorRole**
For details about the permissions of these roles, see [SQL Server Agent Fixed Database Roles](../../ssms/agent/sql-server-agent-fixed-database-roles.md).
Members of **SQLAgentUserRole** can only view jobs that they own. Members of **sysadmin**, **SQLAgentReaderRole**, and **SQLAgentOperatorRole** can view all local and multiserver jobs.
## Examples
### A. List information for all jobs
The following example executes the `sp_help_job` procedure with no parameters to return the information for all of the jobs currently defined in the `msdb` database.
```
USE msdb ;
GO
EXEC dbo.sp_help_job ;
GO
```
### B. Listing information for jobs matching a specific criteria
The following example lists job information for the multiserver jobs owned by `françoisa` where the job is enabled and executing.
```
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_type = N'MULTI-SERVER',
@owner_login_name = N'françoisa',
@enabled = 1,
@execution_status = 1 ;
GO
```
### C. Listing all aspects of information for a job
The following example lists all aspects of the information for the job `NightlyBackups`.
```
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_name = N'NightlyBackups',
@job_aspect = N'ALL' ;
GO
```
## See Also
[sp_add_job (Transact-SQL)](../../relational-databases/system-stored-procedures/sp-add-job-transact-sql.md)
[sp_delete_job (Transact-SQL)](../../relational-databases/system-stored-procedures/sp-delete-job-transact-sql.md)
[sp_update_job (Transact-SQL)](../../relational-databases/system-stored-procedures/sp-update-job-transact-sql.md)
[System Stored Procedures (Transact-SQL)](../../relational-databases/system-stored-procedures/system-stored-procedures-transact-sql.md)