Получить задание агента SQL Server, которое запустило определенное выполнение развернутого пакета служб SSIS - PullRequest
0 голосов
/ 13 декабря 2018

У меня развернут пакет служб SSIS на SQL Server, и есть 3 разных задания агента SQL Server, которые запускают этот пакет с различными шагами и расписаниями.

Мой вопрос: если пакет отображается как сбой вКаталоги служб Integration Services -> Отчеты в одном из выполнений, есть ли способ определить, какое задание выполняет то выполнение, которое вызвало сбой пакета (не путем перекрестной проверки времени сбоя из истории задания и сбоя пакета).время выполнения)?

1 Ответ

0 голосов
/ 13 декабря 2018

Это не очень прямо вперед.Основываясь на ответе на этот стек , вы можете попробовать:

SELECT 
 history.*
,ex.* 
,ex.status
, CASE ex.status
    WHEN 1 THEN 'created'
    WHEN 2 THEN 'running'
    WHEN 3 then 'canceled'
    WHEN 4 then 'failed'
    WHEN 5 then 'pending'
    WHEN 6 then 'ended unexpectedly'
    WHEN 7 then 'succeeded'
    WHEN 8 then 'stopping'
    WHEN 9 then 'completed'
END as job_status
FROM (
    SELECT 
        h.step_name,  
        -- h.message, 
        h.run_status, 
        h.run_date, 
        h.run_time, 
        SUBSTRING(h.message, NULLIF(CHARINDEX('Execution ID: ', h.message),0)+14 ,PATINDEX('%[^0-9]%',SUBSTRING(h.message, NULLIF(CHARINDEX('Execution ID: ', h.message),0)+14 ,20))-1) ExecutionId
    FROM MSDB.DBO.SYSJOBHISTORY h) history
LEFT JOIN 
SSISDB.CATALOG.EXECUTIONS ex on ex.execution_id = history.ExecutionId
WHERE project_name = '<ssisdb_project_name_here>'

В нем много столбцов, которые можно игнорировать, заменив * в select.Важной частью является объединение MSDB.DBO.SYSJOBHISTORY с MSDB.DBO.SYSJOBHISTORY.

Кроме того, это работает для режима развертывания проекта, а не для режима развертывания пакета служб SSIS.

...