Como encontrar el nombre de trabajo (job) de SQL Server de un paso específico (job step)

Cuando automatizamos tareas de  SQL Server usamos los jobs o trabajos que permiten hacer una tarea en una hora específica.

Por ejemplo una copia de seguridad, mantener índices, mantener logs, etc. Uno puede hacer que corran estas tareas a una hora programada mediante jobs. 

Cuando uno tiene varios jobs, cuesta a veces mantenerlos o acordarse el nombre exacto. También los pasos que tiene el job. Un job puede tener varios pasos. En el siguiente ejemplo voy a mostrar como ver el job al que pertenece un paso.

Supongamos que hice un paso que se llama ventas. No me acuerdo en que job estaba, pero me acuerdo que el paso tiene la palabra ventas.

Para ver todos los jobs que tienen un paso que contenga la palabra ventas usamos la siguiente consulta a la base de datos MSDB:


USE MSDB

GO


select [step_name],j.name from

[dbo].[sysjobsteps] s

inner join

dbo.sysjobs j

on s.job_id=j.job_id

where [step_name] like '%ventas%'


La consulta va a la base de datos del sistema msdb que viene en SQL Server y consulta los datos a dos tablas:

  • sysjobsteps contiene los pasos de un job.
  • Sysjobs contiene los trabajos.
Entonces simplemente combinamos ambos para poder tener el nombre del job y el nombre del step.

Espero que haya sido la consulta útil.
Muchas gracias.

Comentarios

Entradas populares de este blog

The Deep Sea: una web interactiva para explorar las profundidades el mar y descubrir las extrañas criaturas que viven en él

Detectar el usuario de Windows utilizando C#

Lo nuevo de SQL Server 2008 respecto a SQL Server 2005