Skip to content

조회 수 19580 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
SQL Agent에 등록되어 있는 작업이 현재 실행중인지를 확인하는 프로시저입니다.
 
간단할꺼라 생각했는데, 쉽게 확인할 수 있는 사항이 아니었네요~
시스템 테이블과 저장 프로시저들을 참고하여 한 번 만들어봤습니다.
SQL 2000에서도 제대로 돌아가기 위해 결과테이블을 테이블 변수 대신 임시테이블로 정의하였습니다.
SQL 2005에서는 테이블 변수에다가 execute 결과를 저장할 수가 있지만, SQL 2000에서는 안되어서요~^^
참고하시기 바랍니다.
 
 

CREATE PROC USP_CHECK_JOB_STATUS

             @job_name sysname AS

SET NOCOUNT ON

 

DECLARE @is_sysadmin INT 

DECLARE @job_owner   sysname 

DECLARE @job_id uniqueidentifier

 

IF OBJECT_ID('TEMPDB..#job_execution_state') IS NOT NULL

DROP TABLE #job_execution_state

 

CREATE TABLE #job_execution_state

                           (

                                        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) 

 

SELECT @is_sysadmin = ISNULL(IS_SRVROLEMEMBER(N'sysadmin'), 0) 

SELECT @job_owner = SUSER_SNAME()

SELECT @job_id = job_id FROM msdb.dbo.sysjobs where name = @job_name

 

IF @job_id IS NOT NULL

             BEGIN

                           INSERT INTO #job_execution_state

                           EXEC master.dbo.xp_sqlagent_enum_jobs @is_sysadmin, @job_owner, @job_id

 

                           IF EXISTS (SELECT * FROM #job_execution_state)

                                        SELECT @job_name AS Name, running AS Status, CASE WHEN running = 1 THEN '실행중' ELSE '실행중이지 않음' END AS Comments

                                        FROM #job_execution_state

                           ELSE

                                        SELECT @job_name as Name, -1 as Status, '해당 작업이 없습니다.' AS Comments

             END

ELSE

             SELECT @job_name as Name, -1 as Status, '해당 작업이 없습니다.' AS Comments

 

SET NOCOUNT OFF

GO

 

 
 

USP_CHECK_JOB_STATUS 'TEST'

/*

Name     Status      Comments

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

TEST     1           실행중

*/

 

USP_CHECK_JOB_STATUS 'TEST'

/*

Name     Status      Comments

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

TEST     0           실행중이지 않음

*/

 

USP_CHECK_JOB_STATUS 'TEST1'

/*

Name     Status      Comments

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

TEST1     -1         해당 작업이 없습니다.

*/


  1. No Image 28Sep
    by ADMINPLAY
    2014/09/28 by ADMINPLAY
    Views 6796 

    [MS-SQL] MS-SQL 2000 이하에서 지원되던 오래된 쿼리 2008 이상에서도 사용하기

  2. No Image 20Sep
    by ADMINPLAY
    2014/09/20 by ADMINPLAY
    Views 5168 

    MicroSoft SQL Server 2008 1433 port 원격(외부)접속 허용하기

  3. No Image 16Jan
    by ADMINPLAY
    2012/01/16 by ADMINPLAY
    Views 14743 

    SET LOCK_TIMEOUT

  4. No Image 30Mar
    by ADMINPLAY
    2011/03/30 by ADMINPLAY
    Views 17193 

    SQL Server 2008 R2 버전에서 지원하는 기능

  5. No Image 03Jun
    by ADMINPLAY
    2010/06/03 by ADMINPLAY
    Views 25276 

    Fatal error: Call to undefined function: mssql_connect()

  6. No Image 29May
    by l2zeo
    2010/05/29 by l2zeo
    Views 21982 

    DBCC SHRINKFILE 트랜잭션 로그파일 축소

  7. No Image 23Apr
    by ADMINPLAY
    2010/04/23 by ADMINPLAY
    Views 20320 

    마소제공 mssql 관리툴

  8. No Image 28Mar
    by l2zeo
    2010/03/28 by l2zeo
    Views 21009 

    SQL Server 데이터 파일 축소

  9. No Image 25Feb
    by l2zeo
    2010/02/25 by l2zeo
    Views 16937 

    [FAQ]join을 하다가 막혔어요..

  10. [FAQ]mssql2005 디버깅 어떻게 해야 하나요?

  11. No Image 25Feb
    by l2zeo
    2010/02/25 by l2zeo
    Views 19914 

    [FAQ]하나의 서버에 두개의 database를 설치하려고 합니다.

  12. 데이터 원본에 저장 프로시저 사용하기

  13. No Image 24Feb
    by l2zeo
    2010/02/24 by l2zeo
    Views 24138 

    MSSQL 버전별 최대 용량 비교표

  14. No Image 24Feb
    by l2zeo
    2010/02/24 by l2zeo
    Views 18540 

    SQL Server 2008의 새로운 기능 - Parameter Embedding Optimization

  15. No Image 24Feb
    by l2zeo
    2010/02/24 by l2zeo
    Views 20391 

    SQL서버 성능카운터 활용을 위한 팁

  16. SQL Server 2005 백업 설정 방법

  17. No Image 23Feb
    by l2zeo
    2010/02/23 by l2zeo
    Views 19580 

    SQL Agent 작업 실행 상태 확인하기

  18. DB 서버에 특정 IP 접근 차단 방법

  19. [MSSQL 2000] 성능 모니터링

  20. No Image 20Dec
    by ADMINPLAY
    2009/12/20 by ADMINPLAY
    Views 34744 

    [SQL Server] Build Number of Each Version of SQL Server - MSSQL 버전정보

Board Pagination Prev 1 2 Next
/ 2

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234