2014-12-29 3 views
0

실행중인 작업을 일정 기간 실행 한 다음 다시 시작하는 방법을 찾고 있습니다.쿼리를 사용하여 데이터베이스 작업 중지 및 다시 시작

나는 sp_stop_job에 대해 읽었으며, 이해하고있는 바에 따르면, 현재 실행중인 단계가 완료되면 작업이 중지됩니다.
일반적으로 작업이 단계에서 멈추고 중지했다가 다시 시작해야하며 정상적으로 완료되기 때문에 사용할 수 없습니다.

예상보다 오래 실행 된 작업에 대해 경고를 보내고 실행하는 작업이 이미 있습니다. 현재 작업을 끝내지 않을 특정 작업을 중지했다가 다시 시작할 수있는 방법이 필요합니다.

사용하여 SQL 서버 2014 관리 Studio

감사
스티븐

+1

당신은 세션을 찾아 간단히 작업이 사용하고있는 세션을 kill 명령을 사용하여 할 수있는 작업을 다시 실행 . – Hozikimaru

+0

sysJobs 및 sysJobActivity를 사용하여 시작한 이름과 시간을 보여주는 현재 실행중인 작업을 모두 표시하는 쿼리를 찾았습니다 (원래 게시물에 추가됨). 그러나 현재 세션과 작업을 일치시키는 방법을 파악할 수 없었습니다 또는 작업으로 인해 실행중인 세션을 쉽게 알 수있는 방법이 있다면. – Doolius

+0

좀 더 놀고 싶을 때 필요한 코드를 찾은 것 같습니다. 올바른 방향으로 나를 가리켜 주셔서 감사합니다. @ SurgeonofDeath – Doolius

답변

0
SELECT 
    p.spid, 
    j.name AS job_name, 
    ja.start_execution_date  
FROM msdb.dbo.sysjobactivity ja 
JOIN msdb.dbo.sysjobs j 
ON ja.job_id = j.job_id 
JOIN master.dbo.sysprocesses p 
ON master.dbo.fn_varbintohexstr(convert(varbinary(16), j.job_id)) COLLATE Latin1_General_CI_AI = 
    substring(replace(program_name, 'SQLAgent - TSQL JobStep (Job ', ''), 1, 34) 
    WHERE ja.session_id = (SELECT TOP 1 session_id FROM msdb.dbo.syssessions ORDER BY agent_start_date DESC) 
AND start_execution_date is not null 
AND stop_execution_date is null;