지난 며칠 동안 SQL Server 작업 기록과 관련된 문제를 해결하려고합니다. 로그 파일 뷰어에서 볼 수 있듯이 작업 기록 데이터를 표시하고 싶습니다. 쿼리를 실행하고 데이터를 얻지 만 특정 단계에서 실행중인 작업에 속한 단계를 파악하는 방법에 대해 혼란스러워합니다. 우리는 매 시간마다 작업을 실행하고 4 단계를 수행하면 모든 작업이 실행될 때 성공적인 실행을 위해 sysjobhistory에 5 개의 레코드를 삽입 할 것이므로 특정 단계에서 실행중인 작업이 어떤 단계에 속해 있는지 염려합니다. 하나를 만들려는 경우 드릴 다운 보고서에 어떻게 표시 할 수 있습니까?SQL Server의 작업 내역
SELECT sysjobhistory.server,
sysjobs.name
AS
job_name,
CASE sysjobhistory.run_status
WHEN 0 THEN 'Failed'
WHEN 1 THEN 'Succeeded'
ELSE '???'
END
AS
run_status,
Isnull(Substring(CONVERT(VARCHAR(8), run_date), 1, 4) + '-' +
Substring(CONVERT(VARCHAR
(8), run_date), 5, 2) + '-' +
Substring(CONVERT(VARCHAR(
8), run_date), 7, 2), '')
AS
[Run DATE],
Isnull(Substring(CONVERT(VARCHAR(7), run_time+1000000), 2, 2) + ':'
+
Substring(CONVERT(VARCHAR(7), run_time+1000000), 4, 2
)
+
':' +
Substring(CONVERT(VARCHAR(7), run_time+1000000), 6, 2), '')
AS
[Run TIME],
Isnull(Substring(CONVERT(VARCHAR(7), run_duration+1000000), 2, 2) +
':' +
Substring(CONVERT(VARCHAR(7), run_duration+1000000),
4,
2)
+ ':' +
Substring(CONVERT(VARCHAR(7), run_duration+1000000), 6, 2),
''
) AS
[Duration],
sysjobhistory.step_id,
sysjobhistory.step_name,
sysjobhistory.MESSAGE
FROM msdb.dbo.sysjobhistory
INNER JOIN msdb.dbo.sysjobs
ON msdb.dbo.sysjobhistory.job_id = msdb.dbo.sysjobs.job_id
ORDER BY instance_id DESC