Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have exhausted my resources and can't find a foolproof way to join the ssisdb.catalog tables to the jobs that run them. Trying to write some custom sprocs to monitor my execution times and rows written from the catalog tables, and it would be greatly beneficial to be able to tie them together with the calling job.

I'm trying to find out if there are any tables that can be used to join the catalog.executions table to msdb.sysjobhistory. I need to relate which job called the SSIS package and then use the data in executions for my analysis.

share|improve this question

Not for any case. But I have some way:

It is designed for only for the case in the message table sysjobhistory, appears string:

"Execution ID: xxxxxxx".

In the following query, in the last column I extract the ExecutionId.

In the case ExecutionId has a value, it can join:

        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
SSISDB.CATALOG.EXECUTIONS ex on ex.execution_id = history.ExecutionId

Note that can also attach these tables:

LEFT JOIN SSISDB.CATALOG.OPERATION_MESSAGES om on history.ExecutionId = om.operation_id
LEFT JOIN SSISDB.CATALOG.EVENT_MESSAGES em on em.operation_id =history.ExecutionId 
share|improve this answer

Update: The short answer is : There is NO way of joining ssisdb.catalog tables to the jobs that run them. There is some good info available in these articles by Jamie Thomson:

I guess, what you are trying to do is already being done by Jamie. Refer to the sp_ssis_catalog to see if it meets your needs or not.

I did not find a way to join ssisdb.catalog tables to the jobs that run them. You can refer to the following for some insight to get the job name:

SSIS Error Report Email by Clark Baker

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.