Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Rufen Sie den SQL Server-Auftragsstatus ab

Nicht so schwer. Denken Sie daran, dass SQL Server jederzeit Metadaten darüber speichert, welche Details aktiv mit dem Server gemacht werden. Ich würde dies tun, um Fehler zu finden, indem Sie einen Prozess oder eine Funktion erstellen und nach Datumsbereich benennen könnten. Ich habe jedoch vorerst nur ein Beispiel für die Abfrage gegeben:

use msdb;

declare
    @Start int =  cast( convert(varchar,  
            dateadd(ww, datediff(ww, 0, getdate())-1,0)  -- last week starting
            , 112) as int)
,   @End int = cast( convert(varchar,
            getdate()  -- current datetime
            , 112) as int)
;

Select 
    j.name
,   j.description
,   cast( cast(jh.run_date as varchar) + ' ' +  left(jh.run_time, 2) + ':' + substring( cast(jh.run_time as varchar), 3, 2) as datetime) as TimeRan
,   jh.message
,   jh.step_id
,   jh.step_name
from sysjobs j (nolock) 
    join sysjobhistory jh (nolock) on j.job_id = jh.job_id
        and jh.run_date between @Start and @End
        and jh.run_status = 0  -- 0 is failure