问题描述
我是 SSIS 的新手,我有几个问题请帮助我。
谢谢
解决方法
此查询将为您提供服务器上运行的所有包的包和作业名称。
;WITH CTE1 AS (
SELECT
J.job_id,JobName = J.name,JS.step_id,JS.step_name,JS.command,StartIndex =
CASE
WHEN JS.command LIKE '/DTS%' OR JS.command LIKE '/SQL%' OR JS.command LIKE '/ISSERVER%' THEN CHARINDEX('\',CHARINDEX('\',JS.command) + 1) --'
WHEN JS.command LIKE '/SERVER%' THEN CHARINDEX('"',JS.Command,CHARINDEX(' ',command,command) + 1) + 1) + 1
ELSE 0
END,EndIndex =
CASE
WHEN JS.command LIKE '/DTS%' OR JS.command LIKE '/SQL%' OR JS.command LIKE '/ISSERVER%'
THEN CHARINDEX('"',JS.command) + 1)) --'
- CHARINDEX('\',JS.command) + 1) - 1 --'
WHEN JS.command LIKE '/SERVER%'
THEN CHARINDEX('"',CHARINDEX('"',command) + 1) + 1) + 1)
- CHARINDEX('"',command) + 1) + 1) - 1
ELSE 0
END
FROM msdb.dbo.sysjobsteps JS
INNER JOIN msdb.dbo.sysjobs J
ON JS.job_id = J.job_id
WHERE JS.subsystem = 'SSIS'
)
SELECT
C1.job_id,C1.JobName,C1.step_id,C1.step_name,PackageFolderPath =
CASE
WHEN C1.command LIKE '/DTS%' OR C1.command LIKE '/ISSERVER%' THEN
SUBSTRING(C1.command,C1.StartIndex,C1.EndIndex)
WHEN C1.command LIKE '/SQL%' THEN '\MSDB' + SUBSTRING(C1.command,C1.EndIndex)
WHEN C1.command LIKE '/SERVER%' THEN '\MSDB\' + SUBSTRING(C1.command,C1.EndIndex)
ELSE NULL
END,C1.command
FROM CTE1 C1
ORDER BY C1.job_id,C1.step_id