`
baobeituping
  • 浏览: 1067993 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

sql server 查询某个数据库中所有的任务执行状态

阅读更多

xp_sqlagent_enum_jobs 参数:


xp_sqlagent_enum_jobs <is sysadmin (0 or 1)>, <job owner name> [, <job id>]

備註:

@is sysadmin=1

@job owner name 可以随便给个字符串值

@job id 可有可无。

例如,可以这样查询所有的作业状况:

execute master.dbo.xp_sqlagent_enum_jobs 1, 'sa'

查询特定 Job 的运行状态:

declare @job_id uniqueidentifier
select @job_id = job_id  from msdb.dbo.sysjobs where name = 'job name'

exec xp_sqlagent_enum_jobs 1, 'sa', @job_id

判断 SQL Server 作业(Job)是否正在运行的代码。


1. create temp table to save jobs status
create table #job_run_status
(
   job_id                  uniqueidentifier  not null,
   last_run_date           int               not null,
   last_run_time           int               not null,
   next_run_date           int               not null,
   next_run_time           int               not null,
   next_run_schedule_id    int               not null,
   requested_to_run        int               not null, -- bool
   request_source          int               not null,
   request_source_id       sysname           collate database_default null,
   running                 int               not null, -- bool
   current_step            int               not null,
   current_retry_attempt   int               not null,
   job_state               int               not null
)

2. get jobs status
insert into #job_run_status
execute master.dbo.xp_sqlagent_enum_jobs 1, 'sa'

3. get running jobs


select job_name = j.name
      ,s.*
from #job_run_status s
inner join msdb.dbo.sysjobs j
    on s.job_id = j.job_id
where s.running = 1        -- running = 1

master.dbo.xp_sqlagent_enum_jobs 非常有用,根据它返回的结果集,我们可以知道:

一个 SQL Job 是否正在运行,Job 最后一次运行的时间,下次将要开始运行的时间,当前执行的是 Job 的第几步,以及重试了几次。

__________________________________________________________________

一 、查看Job是否在運行


Declare @Job_ID as UNIQUEIDENTIFIER
select @Job_ID =Job_ID from msdb.dbo.sysjobs where name = 'PCDBI'
Exec master..sp_MSget_jobstate @Job_ID

返回值为 1 - 正在运行
             4 - 表示完成(成功或失败)

二、查看執行的结果状态

-- source : www.sqlstudy.com
-- create : 2008-01-01
-- descr : a simple sql script to view sql server jobs run status
--------------------------------------------------------------------------------
select category = jc.name, category_id = jc.category_id, job_name = j.name,
job_enabled = j.enabled,
last_run_time = cast(js.last_run_date as varchar(10)) + '-' + cast(js.last_run_time as varchar(10)),
last_run_duration = js.last_run_duration,
last_run_status = js.last_run_outcome,
last_run_msg = js.last_outcome_message + cast(nullif(js.last_run_outcome,1) as varchar(2)),
job_created = j.date_created,
job_modified = j.date_modified
from msdb.dbo.sysjobs j
inner join msdb.dbo.sysjobservers js on j.job_id = js.job_id
inner join msdb.dbo.syscategories jc on j.category_id = jc.category_id
where j.enabled = 1 and js.last_run_outcome in (0,1,3,5)
-- 0:Fail 1:Succ 3:Cancel 5:First run and jc.category_id not between 10 and 20 -- repl

三 、查看历史情况


select step_id,run_status,run_date As rundate
--a.run_time, a.*
from msdb.dbo.sysjobhistory a
inner join msdb.dbo.sysjobs b on a.job_id=b.job_id
where b.name='PCDBI'
order by run_date DESC,step_id Asc

作业的执行状态run_status:
0 = 失败
1 = 成功
2 = 重试
3 = 取消
4 = 正在进行

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yoyoch1/archive/2009/05/20/4202995.aspx

分享到:
评论

相关推荐

    断开数据库所有用户打开的连接

    当用户登录到SQL Server并访问某个数据库时,系统会为该连接分配一个SPID。这些连接状态可以在`sysprocesses`视图中查看,它提供了关于正在运行的进程的信息,包括正在运行的查询、等待的进程等。 ### 知识点二:...

    从新加载sql server数据库

    从新加载SQL Server数据库是一项重要的任务,特别是在遇到数据库损坏或者需要恢复到某个特定状态时。本文将基于给定的信息——“从新加载SQL Server数据库”的标题、“从新加载SQL Server数据库”的描述以及“从新...

    SQLSERVER数据库还原

    在IT领域,数据库管理是至关重要的,特别是在企业级应用中,SQL Server作为一款广泛应用的关系型数据库管理系统,其数据安全和恢复策略是系统稳定运行的基础。本文将深入探讨SQL Server数据库的还原过程,以及相关的...

    分析SQL Server中数据库的快照工作原理

    当用户执行针对快照的`SELECT`查询时,SQL Server会动态地合并源数据库和快照中的数据,以提供快照创建时刻的数据视图。由于快照是只读的,因此在此过程中不会产生任何锁定,这使得快照非常适合用于报表和分析任务,...

    SQL Server培训 pptx

    - **数据库还原**:当数据库遭受损坏或需要回滚到之前的某个状态时,可以通过选择数据库,右键点击“任务”并选择“还原”来实现。还原操作可能会导致数据丢失,请谨慎操作。 - **数据库收缩**:收缩数据库可以...

    sqlserver数据库自动备份

    在SQL Server环境中,数据库自动备份是一项关键操作,它确保了数据的安全性和可恢复性。本文将详细介绍如何通过SQL命令结合Windows计划任务来实现SQL Server数据库的自动备份。 首先,我们需要理解SQL Server中的...

    SQL SERVER2000数据库备份和恢复存储过程.rar_SQL 备份_recovery in SQL_sql server

    恢复过程是将备份的数据还原到数据库中,以恢复到某个时间点的状态。SQL Server 2000支持简单恢复模型、完整恢复模型和大容量日志恢复模型。简单恢复模型不保留事务日志,适合不需要事务一致性恢复的小型应用;完整...

    SQLServer代理服务器

    SQL Server代理服务器是Microsoft SQL Server数据库管理系统中的一个重要组成部分,它主要负责执行计划的任务,如定期备份、维护数据库、数据导入导出以及运行自定义脚本等。SQL Server代理服务器是数据库自动化运维...

    sql server 数据库开发

    SQL Server 数据库开发是IT领域中的一个重要组成部分,它涉及到数据存储、管理和应用程序接口等多个方面。SQL Server 2000是Microsoft公司推出的关系型数据库管理系统,适用于各种规模的企业和项目。该系统的不同...

    SQL Server2008数据库分离和附加

    分离数据库是指将某个数据库从 SQL Server 的管理中移除,但保留其物理文件(包括主要数据文件 .MDF 和事务日志文件 .LDF)。这样做的好处是可以安全地移动数据库文件,便于进行备份或迁移至其他位置。 **2. 操作...

    SQL Server 2000还原数据库.doc

    在SQL Server 2000中,数据库的还原是一个关键操作,它用于恢复数据库到某个已备份的状态,以便解决数据丢失、系统崩溃或其他问题。以下是对这个过程的详细解释: 1. **启动企业管理器**:首先,从“开始”菜单找到...

    SQL Server 2005中还原数据库

    在SQL Server 2005中,数据库的还原是一项至关重要的任务,它允许用户恢复丢失的数据,从备份中恢复到某个特定时间点,或者将数据库迁移到新的硬件环境。数据库的完整性和可用性是任何业务运行的基础,因此理解并...

    SQL Server从表结构和数据得到更新SQL语句,可以作为导数据库的工具。

    例如,以下SQL语句可以列出数据库中所有表的字段信息: ```sql SELECT t.name AS TableName, c.name AS ColumnName, c.system_type_id, c.max_length, c.is_nullable, c.is_identity, df.definition ...

    一个基于.NET实现的SQLServer数据库备份与恢复程序代码

    在.NET框架下,开发SQL Server数据库的备份与恢复程序是一项重要的任务,这涉及到数据库的安全性和数据完整性。本文将深入探讨如何使用C#编程语言来实现这一功能,主要围绕标题和描述中提到的关键知识点进行详细解释...

    数据库备份软件 SqlServer备份

    标签中提及“SQLServer数据库自动备份”,这表明该程序具备自动化功能,可以按照预设的计划自动执行备份任务,无需人工干预。自动备份可以显著减少潜在的人为错误,并确保备份的及时性。此外,“多个数据库自动备份...

    sql server实现在多个数据库间快速查询某个表信息的方法

    在SQL Server中,实现跨多个数据库快速查询特定表信息的需求是一项常见的任务,特别是在拥有大量数据库的环境中。本文将介绍一种利用游标和系统存储过程的方法来实现这一目标。首先,我们要了解SQL Server中的系统...

    SQL利用游标替换数据库中某个字段的某个字符

    ### SQL利用游标替换数据库中某个字段的某个字符 在SQL Server中,游标是一种用于处理数据行集合的强大工具,特别是在需要逐行处理记录时。本文将详细介绍如何使用游标来遍历表中的数据,并替换指定字段内的特定...

    Microsoft SQL Server 2005 Express Edition SP3

    默认情况下,不在 SQL Server Express 中安装示例数据库。Northwind 和 pubs 示例数据库可以从 Microsoft 网站进行下载。Adventureworks 示例数据库可从此 Microsoft 网站安装。 [顶部] 3.7“强制加密”配置可能会...

    SQLSERVER脚本生成器

    SQLSERVER脚本生成器是一款非常实用的工具,尤其对于数据库管理员和开发人员来说,它能够极大地简化数据库管理和迁移的工作流程。这款程序的核心功能是能够直接连接到SQL Server 2005数据库,并且能生成包括数据表...

Global site tag (gtag.js) - Google Analytics