I am viewing historic stored procedures in SQL Server by opening "Job Activity Monitor":
Right click on my job and select "View history":
which returns a table, which I then export as a log file
I then proceed to parse the log files in other applications and monitoring purposes.
Is there a way to extract this information using a SQL query, so I can automate this extraction?
I tried EXEC dbo.sp_help_jobhistory @job_id = N'blahblahblah'
, but the results are not broken into steps.
I tried exec sp_help_jobstep @job_id = N'blahblahblah'
to show the steps of the specific job_id, but I do not know how to join this to the table shown above.
Is there a way around this?
You can use:
EXEC dbo.sp_help_jobhistory @job_id = N'X-Y-Z', @mode='full'
to get more details the same way SQL Agent does.
As for your question:
As an extra, is it possible to see more history than 30 days
this is a setting for SQL Agent, so you have to control it there: right click on SQL Server Agent -> Properties -> History -> Remove agent history.
Personally, i prefer to use: "Max job history log size" and "maximum job history rows" which ensures every job has decent history
Note, that it might consume a lot of space if you keep the logs forever :)