J'utilise le script ci-dessous pour obtenir le Job_state pour le travail d'agent.Rechercher l'état du travail de l'agent SQL - SQL Server
Il renvoie 1 en tant que job_state lorsque le travail est en cours d'exécution => ce qui est correct.
Mais pour tous les autres cas (échec/succès/annulé), elle retourne job_status 4 (ce qui signifie que le ralenti)
Comment puis-je obtenir job_state exacte afin que je puisse déterminer si elle est un échec/succès ou annulé.
Mon script jusqu'à présent:
DECLARE @xp_results TABLE
(
job_id UNIQUEIDENTIFIER NOT NULL ,
last_run_date INT NOT NULL ,
last_run_time INT NOT NULL ,
next_run_date INT NOT NULL ,
next_run_time INT NOT NULL ,
next_run_schedule_id INT NOT NULL ,
requested_to_run INT NOT NULL ,
request_source INT NOT NULL ,
request_source_id SYSNAME COLLATE database_default NULL ,
running INT NOT NULL ,
current_step INT NOT NULL ,
current_retry_attempt INT NOT NULL ,
job_state INT NOT NULL
)
SET NOCOUNT ON
INSERT INTO @xp_results
EXEC master.dbo.xp_sqlagent_enum_jobs 1, ''
DECLARE @jobs TABLE
(
rownum INT IDENTITY(1, 1)
PRIMARY KEY
NOT NULL ,
job_id UNIQUEIDENTIFIER NOT NULL
)
SELECT name,job_state
FROM @xp_results rj
INNER JOIN msdb.dbo.sysjobs sj ON sj.job_id = rj.job_id