Files
sql-scripts/EXPLOIT - start replication agents that are stopped.sql
Schork Thierry (Galenica) 5a4f2784bb sync
2026-01-13 08:14:13 +01:00

27 lines
788 B
Transact-SQL

DECLARE @tpl VARCHAR(255)='exec [msdb].[dbo].[sp_start_job] @job_name= ''@job@''; '+CHAR(13)+CHAR(10)
DECLARE @q VARCHAR(MAX)='';
WITH cteActivity AS (
SELECT job_id, session_id, ROW_NUMBER()OVER(PARTITION BY job_id ORDER BY start_execution_date DESC) AS rnk
FROM msdb.dbo.sysjobactivity
)
SELECT @q = @q + REPLACE(@tpl, '@job@', j.name)
FROM msdb.dbo.sysjobs j
WHERE name LIKE 'ActivePosTran distribution agent -%'
AND NOT EXISTS(
--the job is currently running
SELECT 1
FROM msdb.dbo.sysjobactivity sja
JOIN cteActivity ca ON ca.job_id = sja.job_id AND ca.session_id = sja.session_id
WHERE sja.job_id = j.job_id
AND ca.rnk=1
AND sja.start_execution_date IS NOT NULL
AND sja.stop_execution_date IS NULL
)
IF NULLIF(@q,'') IS NOT NULL
BEGIN
PRINT @q
EXEC(@q)
END