Skip to content

조회 수 18170 추천 수 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         해당 작업이 없습니다.

*/

Who's l2zeo

profile

I see no changes, wake up in the morning and I ask myself

Is life worth living should I blast myself

Things would never be the same.


List of Articles
번호 제목 글쓴이 날짜 조회 수
19 [MSSQL] “시간제한이 만료되었습니다.”라는 메시지가 나옵니다... 1 ADMINPLAY 2009.11.26 21588
18 MSSQL 2005 접속 클라이언트(mssql server management Studio ... ADMINPLAY 2009.11.26 16335
17 Ms-Sql 백업 format옵션 ADMINPLAY 2009.11.26 9850
16 sql 설명들... ADMINPLAY 2009.11.26 7130
15 MS-SQL 클라이언트 설치 방법 ADMINPLAY 2009.11.26 16254
14 MsSQL에서 소유자(mssql2000 => mssql2005으로 복원) ADMINPLAY 2009.11.26 9323
13 SQL2005 --> SQL2000 으로 디비 옮기는 방법 ADMINPLAY 2009.11.26 8170
12 MSSQL 접속 방법 ADMINPLAY 2009.11.26 9163
11 [MS-SQL] DB Table 소유자변경 ADMINPLAY 2009.11.24 8756
10 MSSQL 클러스터 ADMINPLAY 2009.11.19 9663
9 MSSQL 파일사이즈 줄이기 ADMINPLAY 2009.11.10 7519
8 SQL Server DBA 가이드 ADMINPLAY 2009.11.10 12667
7 The log file for database 'board' is full 해결방법 ADMINPLAY 2009.06.04 7949
6 mssql2005 원격접속 허용 - 노출 영역 구성 ADMINPLAY 2009.06.04 10424
5 MSSQL 트랜잭션로그삭제 ADMINPLAY 2009.05.15 11520
4 sa계정 패스워드변경하기 1 ADMINPLAY 2009.05.07 10897
3 Firehose 모드에서는 트랜젝션을 시작할수 없습니다 ADMINPLAY 2009.04.13 7493
2 php에서 mssql 연동방법(총정리) ADMINPLAY 2009.04.13 16783
1 mysql 대량 쿼리 보내기 ADMIN 2008.12.14 8786
Board Pagination Prev 1 2 Next
/ 2

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234