Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Obsahuje informace o provádění plánovaných úloh SQL Server Agentem.
Poznámka:
Ve většině případů se data aktualizují až po dokončení kroku úlohy a tabulka obvykle neobsahuje žádné záznamy pro probíhající kroky úlohy. V některých případech základní procesy poskytují informace o probíhajících krocích úlohy.
Tato tabulka je uložena v databázi msdb .
| Název sloupce | Datový typ | Description |
|---|---|---|
instance_id |
int | Jedinečný identifikátor pro daný řádek. |
job_id |
uniqueidentifier | ID úlohy. |
step_id |
int | Identifikace kroku v práci. |
step_name |
sysname | Název kroku |
sql_message_id |
int | ID jakékoli chybové zprávy SQL Server se vrátilo, pokud úkol selhal. |
sql_severity |
int | Závažnost jakékoli chyby SQL Serveru. |
message |
nvarchar(4000) | Text, pokud nějaký je, chyba SQL Serveru. |
run_status |
int | Stav realizace práce:0 = Neuspěl1 = Podařilo se2 = Opakování3 = Zrušeno4 = Ve vývoji |
run_date |
int | Datum zahájení práce nebo kroku v podobě formátu yyyyMMdd . Pro historii Ve vývoji je tato hodnota datum a čas, kdy byla historie napsána. |
run_time |
int | Načasujte začátek práce nebo kroku ve formátu HHmmss . |
run_duration |
int | Uplynulý čas při provedení úkolu nebo kroku HHmmss ve formátu pro období až 24 hodin. Najděte kód pro překlad delších běhů v příkladu. |
operator_id_emailed |
int | ID operátora bylo oznámeno při dokončení zakázky. |
operator_id_netsent |
int | ID operátora bylo oznámeno zprávou po dokončení práce. |
operator_id_paged |
int | ID operátora bylo oznámeno pagerem po dokončení práce. |
retries_attempted |
int | Počet pokusů o opakování úkolu nebo kroku. |
server |
sysname | Název serveru, na kterém byla práce vykonána. |
Examples
Následující dotaz Transact-SQL převede run_date sloupce a run_time na sloupec s názvem datetime s názvem LastRunStartDateTime. Sloupec run_duration je převeden na sloupec s názvem LastRunDurationSeconds. Tyto dva sloupce se pak použijí k výpočtu .LastRunFinishDateTime Sloupek run_duration je také převeden do uživatelsky přívětivějšího formátu.
K instanci SQL Serveru se můžete připojit pomocí libovolného známého klientského nástroje SQL Serveru, jako je sqlcmd, SQL Server Management Studio (SSMS) nebo rozšíření MSSQL pro Visual Studio Code.
SET NOCOUNT ON;
SELECT sj.name AS Name,
sh.step_name AS StepName,
shp.LastRunStartDateTime,
DATEADD(SECOND, shp.LastRunDurationSeconds, shp.LastRunStartDateTime) AS LastRunFinishDateTime,
shp.LastRunDurationSeconds,
CASE
WHEN sh.run_duration > 235959
THEN CAST((CAST(LEFT(CAST(sh.run_duration AS VARCHAR),
LEN(CAST(sh.run_duration AS VARCHAR)) - 4) AS INT) / 24) AS VARCHAR)
+ '.' + RIGHT('00' + CAST(CAST(LEFT(CAST(sh.run_duration AS VARCHAR),
LEN(CAST(sh.run_duration AS VARCHAR)) - 4) AS INT) % 24 AS VARCHAR), 2)
+ ':' + STUFF(CAST(RIGHT(CAST(sh.run_duration AS VARCHAR), 4) AS VARCHAR(6)), 3, 0, ':')
ELSE STUFF(STUFF(RIGHT(REPLICATE('0', 6) + CAST(sh.run_duration AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':')
END AS [LastRunDuration (d.HH:MM:SS)]
FROM msdb.dbo.sysjobs sj
INNER JOIN msdb.dbo.sysjobhistory sh ON sj.job_id = sh.job_id
CROSS APPLY (SELECT DATETIMEFROMPARTS(sh.run_date / 10000, -- years
sh.run_date % 10000 / 100, -- months
sh.run_date % 100, -- days
sh.run_time / 10000, -- hours
sh.run_time % 10000 / 100, -- minutes
sh.run_time % 100, -- seconds
0 -- milliseconds
) AS LastRunStartDateTime,
(sh.run_duration / 10000) * 3600 -- convert hours to seconds, can be greater than 24
+ ((sh.run_duration % 10000) / 100) * 60 -- convert minutes to seconds
+ (sh.run_duration % 100) AS LastRunDurationSeconds
) AS shp;
GO