有没有办法 link SQL 代理作业步骤将包调用回其在 SSISDB 中的包记录?
Is there a way to link a SQL Agent Job step that calls a package back to its package record in SSISDB?
我正在围绕我们的 SQL 代理作业构建一些报告,其中很多都从 Integration Services 目录中调用数据包。当作业的一个步骤调用一个包时,我想知道该包是否在作业步骤中被其 SSISDB package_id 或其 package_guid?
以某种方式引用
如果不是,是否有任何其他已知方法可以导出 package_id 或 package_guid?
我仔细查看了 Microsoft 的文档,但找不到我要查找的内容。
当然,我正在查看 sysjobstep table。虽然我可以在命令列中看到正在调用的包的名称,但据我所知,它并没有通过任何类型的 ID 引用包。 (它还包括一堆其他的东西,比如我的 SSIS 项目参数值)
相信名字是我们必须继续的,而不是你想听到的。当我寻找包装参考时,我会保留它。
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 + '%'
您必须解析 sysjobsteps
table 中的 command
列。
以下 post 有一个很好的查询如何做到这一点:
Using T-SQL to get the SSIS Package name, job name and description
我正在围绕我们的 SQL 代理作业构建一些报告,其中很多都从 Integration Services 目录中调用数据包。当作业的一个步骤调用一个包时,我想知道该包是否在作业步骤中被其 SSISDB package_id 或其 package_guid?
以某种方式引用如果不是,是否有任何其他已知方法可以导出 package_id 或 package_guid?
我仔细查看了 Microsoft 的文档,但找不到我要查找的内容。
当然,我正在查看 sysjobstep table。虽然我可以在命令列中看到正在调用的包的名称,但据我所知,它并没有通过任何类型的 ID 引用包。 (它还包括一堆其他的东西,比如我的 SSIS 项目参数值)
相信名字是我们必须继续的,而不是你想听到的。当我寻找包装参考时,我会保留它。
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 + '%'
您必须解析 sysjobsteps
table 中的 command
列。
以下 post 有一个很好的查询如何做到这一点:
Using T-SQL to get the SSIS Package name, job name and description