Есть ли способ связать шаг задания агента SQL, который вызывает пакет обратно к его записи пакета в SSISDB? - PullRequest
0 голосов
/ 15 октября 2019

Я строю некоторые отчеты о наших заданиях агента SQL, и многие из них вызывают пакеты из каталога служб Integration Services. Когда шаг задания вызывает пакет, я хочу знать, на какой шаг на шаг задания ссылается пакет по его SSISDB package_id или по package_guid?

Если нет, есть ли другой известный способ, которым яможно получить package_id или package_guid?

Я внимательно изучил документацию Microsoft, но не могу найти то, что ищу.

Конечно, я смотрю на стол sysjobstep. И хотя я вижу имя пакета, который вызывается в столбце команды, насколько я могу судить, он не ссылается на пакет по какому-либо идентификатору. (И включает в себя множество других вещей, таких как значения параметров моего проекта SSIS)

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Вы должны проанализировать столбец command из таблицы sysjobsteps.
В следующем посте есть хороший вопрос, как это сделать: Использование T-SQL для получения имени пакета SSIS, имени задания и описания

1 голос
/ 15 октября 2019

Верьте по имени, это все, что нам нужно, а не то, что вы хотели услышать. Я держу это рядом, когда я ищу ссылку на пакет.

select 
    '------>' 'Job Information'
    ,a.job_id
    ,a.name
    ,a.description
    ,'------>' 'SSIS package Information' 
    ,b.name
    ,b.id
    ,b.description
    ,'------>' 'Job steps Information' 
    ,js.step_id
    ,js.step_name
    ,js.subsystem
    ,js.command
from  msdb.dbo.sysjobs  a 
left Join msdb.dbo.sysjobsteps js on js.job_id=a.job_id 
left join msdb.dbo.sysssispackages b on js.command like '%'+b.name + '%'
...