Add updated SqlAgent folder

This commit is contained in:
Neeraj Kumar
2025-11-02 14:50:48 -05:00
parent 2c94b89801
commit 8fca292a50
141 changed files with 6723 additions and 0 deletions

View File

@ -0,0 +1,10 @@
USE msdb;
GO
-- Schedule PROD OnDemand Job on 03 Nov at 18:15 PM
------------------------------------------------
EXEC dbo.usp_ScheduleJob
@JobName='PROD_MONTHLY_DTSRQ414',
@Env='PROD',
@RunDate='2025-11-03',
@RunTime='18:15:00';

View File

@ -0,0 +1,141 @@
USE [msdb]
GO
-- Execute the stored procedure for each job
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX215', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX305', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGSID0', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_GSIRQ300', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSRQ202', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGSID1', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX202', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSFT202', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX432', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGACHD', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX303', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGWAGE', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGCHKS', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSESDAY', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGPAYT', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSDX145', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX629', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX630', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSFRAUD', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSRACHD', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBXACH', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBXREG', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX430', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX626', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX530', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBXREL', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX450', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX451', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSPACHD', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSPX148', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSRQ325', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX427', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSPDAY1', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSW4WGE', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGSID2', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSGSID9', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSMIN01', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSMIN02', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSRQ459', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBXPFL', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DESBD427', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX403', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBE405', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX405', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSRQ335', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX601', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSGSID0', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSGSID1', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSBX202', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSFT202', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSBX470', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSBXREJ', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSPDAY7', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSBX122', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSRQ511', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSRQ444', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_WEEKLY_DTSRQ126', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSRQ414', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSPMON1', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSCHGVB', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSCHGVR', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSVBKUP', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSVRSTR', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSRQ442', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSBX460', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSRQ513', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_MONTHLY_DTSCHGDC', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ119', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ902', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSBX500', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ417', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ320', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ713', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSBX468', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSCHGQ1', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSCHGQ2', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ327', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ328', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ412', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ793', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSWGE06', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSCHGRT', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSCHRGS', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ540', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRQ591', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSRTCHG', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DTSWGE01', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_QUARTERLY_DESBD426', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSACH01', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSBX415', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSBX452', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSBX453', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ120', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ123', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ125', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ305', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ306', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ308', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ311', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ410', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ411', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ423', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ426', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ429', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ439', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ602', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ606', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ607', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ609', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ611', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ612', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ717', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ718', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ720', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRQ721', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT715', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT716', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT717', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT718', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT719', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT720', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT722', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_ONDEMAND_DTSRT723', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ722', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ451', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ127', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ321', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ455', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ500', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ517', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ518', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ616', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ701', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ702', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ704', @Env = 'PROD';
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_YEARLY_DTSRQ910', @Env = 'PROD';
GO

View File

@ -0,0 +1 @@
EXEC msdb.dbo.usp_CreateDailyJobSchedule @Env = 'PROD';

View File

@ -0,0 +1,5 @@
USE [msdb]
GO
-- Create a job in SQL Agent (With Standard 3 steps approach)
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'PROD_DAILY_DTSBX215', @Env = 'PROD';

View File

@ -0,0 +1 @@
EXEC msdb.dbo.usp_CreateWeeklySchedules @Env = 'PROD';

View File

@ -0,0 +1,86 @@
/********************************************************************************************
Section 1: Daily Job Schedule Lookup
--------------------------------------------------------------------------------------------
Description:
Returns all SQL Agent jobs scheduled to run on a given date, along with their control
status (IsActive) and configured runtime from JobControl.
Parameters:
@CheckDate - The date to check job schedules for.
Notes:
<20> Uses MSDB<44>s internal schedule definitions (sysschedules, sysjobschedules).
<20> Supports One-time, Daily, Weekly, and Monthly schedule types.
<20> Can easily be adapted for DEVL / TEST / PROD by changing @DbName.
********************************************************************************************/
USE msdb;
GO
DECLARE @CheckDate DATE = CAST(GETDATE() AS DATE); -- Change if needed
DECLARE @CheckWeekday INT = DATEPART(WEEKDAY, @CheckDate);
DECLARE @Env SYSNAME = 'DEVL'; -- Change for TEST or PROD
DECLARE @DbName SYSNAME;
-- Map environment to the right control DB
SET @DbName = CASE @Env
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
END;
DECLARE @Sql NVARCHAR(MAX);
SET @Sql = N'
SELECT
j.name AS SQLAgentJobName,
jc.JobName AS ControlJobName,
jc.ScheduledStartTime,
jc.IsActive,
s.name AS ScheduleName,
s.freq_type,
s.freq_interval,
s.freq_subday_type,
s.freq_subday_interval,
s.active_start_date,
CASE s.freq_type
WHEN 1 THEN ''One-time''
WHEN 4 THEN ''Daily''
WHEN 8 THEN ''Weekly''
WHEN 16 THEN ''Monthly''
ELSE ''Other''
END AS FrequencyType,
CASE
WHEN s.freq_type = 1
AND s.active_start_date = CONVERT(INT, CONVERT(CHAR(8), @CheckDateParam, 112))
THEN 1
WHEN s.freq_type = 4
AND s.active_start_date <= CONVERT(INT, CONVERT(CHAR(8), @CheckDateParam, 112))
THEN 1
WHEN s.freq_type = 8 -- Weekly
AND (POWER(2, @CheckWeekdayParam - 1) & s.freq_interval) > 0
THEN 1
WHEN s.freq_type = 16 -- Monthly
AND DAY(@CheckDateParam) = s.freq_interval
THEN 1
ELSE 0
END AS IsScheduledToday
FROM msdb.dbo.sysjobs j
JOIN msdb.dbo.sysjobschedules js ON j.job_id = js.job_id
JOIN msdb.dbo.sysschedules s ON js.schedule_id = s.schedule_id
LEFT JOIN ' + QUOTENAME(@DbName) + '.dbo.JobControl jc ON jc.JobName = j.name
WHERE jc.IsActive = 1
AND (
(s.freq_type = 1 AND s.active_start_date = CONVERT(INT, CONVERT(CHAR(8), @CheckDateParam, 112))) -- One-time
OR (s.freq_type = 4 AND s.active_start_date <= CONVERT(INT, CONVERT(CHAR(8), @CheckDateParam, 112))) -- Daily
OR (s.freq_type = 8 AND (POWER(2, @CheckWeekdayParam - 1) & s.freq_interval) > 0) -- Weekly
OR (s.freq_type = 16 AND DAY(@CheckDateParam) = s.freq_interval) -- Monthly
)
ORDER BY jc.ScheduledStartTime;
';
EXEC sp_executesql
@Sql,
N'@CheckDateParam DATE, @CheckWeekdayParam INT',
@CheckDateParam = @CheckDate,
@CheckWeekdayParam = @CheckWeekday;
GO

View File

@ -0,0 +1,12 @@
USE ProdDUTASJobSchedule;
GO
UPDATE dbo.JobControl
SET IsActive = 0
WHERE Frequency = 'MONTHLY';
GO
-- Optional: Verify changes
SELECT JobName, Frequency, IsActive
FROM dbo.JobControl
WHERE Frequency = 'MONTHLY';

View File

@ -0,0 +1,27 @@
USE msdb;
GO
DECLARE @EnvPrefix NVARCHAR(50) = N'PROD'; -- <<< Change this to your environment prefix
DECLARE @schedule_id INT;
DECLARE @schedule_name NVARCHAR(128);
DECLARE Sched_Cursor CURSOR FOR
SELECT schedule_id, name
FROM msdb.dbo.sysschedules
WHERE name LIKE @EnvPrefix + '%'; -- Only schedules starting with the given prefix
OPEN Sched_Cursor;
FETCH NEXT FROM Sched_Cursor INTO @schedule_id, @schedule_name;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Deleting schedule: ' + @schedule_name;
EXEC msdb.dbo.sp_delete_schedule @schedule_id = @schedule_id;
FETCH NEXT FROM Sched_Cursor INTO @schedule_id, @schedule_name;
END
CLOSE Sched_Cursor;
DEALLOCATE Sched_Cursor;
PRINT 'All SQL Agent schedules starting with prefix ' + @EnvPrefix + ' deleted successfully.';
GO

View File

@ -0,0 +1,13 @@
-- If you know both the job name and schedule name
DECLARE @JobName NVARCHAR(100) = 'PROD_MONTHLY_DTSCHGDC';
DECLARE @ScheduleName NVARCHAR(200) = 'PROD_MONTHLY_DTSCHGDC_MonthlySchedule';
DECLARE @JobId UNIQUEIDENTIFIER;
-- Get job ID
SELECT @JobId = job_id FROM msdb.dbo.sysjobs WHERE name = @JobName;
-- Detach from specific job
EXEC msdb.dbo.sp_detach_schedule @job_id = @JobId, @schedule_name = @ScheduleName;
-- Then delete
EXEC msdb.dbo.sp_delete_schedule @schedule_name = @ScheduleName;

View File

@ -0,0 +1,63 @@
USE [ProdDUTASJobSchedule];
GO
/**************************************************************************************************
-- FILE: FederalHolidays.sql
-- PURPOSE: Manage FederalHolidays table - Create, Read, Update, Delete for a single holiday
-- TABLE: dbo.FederalHolidays
**************************************************************************************************/
-------------------------------
-- SELECT - View Holiday
-------------------------------
SELECT *
FROM [dbo].[FederalHolidays]
WHERE [Year] = 2025
AND [HolidayName] = N'New Year''s Day';
GO
-------------------------------
-- INSERT - Create Holiday
-------------------------------
INSERT INTO [dbo].[FederalHolidays]
(
[HolidayDate],
[HolidayName],
[Year]
)
VALUES
(
'2025-01-01', -- Holiday date
N'New Year''s Day', -- Holiday name
2025 -- Year
);
GO
-------------------------------
-- UPDATE - Modify Holiday
-------------------------------
UPDATE [dbo].[FederalHolidays]
SET
[HolidayName] = N'New Year''s Day (Observed)',
[HolidayDate] = '2025-01-02'
WHERE
[Year] = 2025
AND [HolidayName] = N'New Year''s Day';
GO
-------------------------------
-- DELETE - Remove Holiday
-------------------------------
DELETE FROM [dbo].[FederalHolidays]
WHERE [Year] = 2025
AND [HolidayName] = N'New Year''s Day (Observed)';
GO
-------------------------------
-- SELECT - View Holiday
-------------------------------
SELECT *
FROM [dbo].[FederalHolidays]
WHERE [Year] = 2025
AND [HolidayName] = N'New Year''s Day';
GO

View File

@ -0,0 +1,16 @@
USE ProdDUTASJobSchedule;
GO
-- 1. Check today's job status
SELECT JobName, Status, ErrorMessage
FROM dbo.JobExecutionHistory
WHERE RunDate = CAST(GETDATE() AS DATE)
AND JobName = 'PROD_WEEKLY_DTSGSID1';
-- 2. Mark DTSBX305 as manually overridden
EXEC dbo.usp_ForceComplete 'PROD_WEEKLY_DTSGSID1', 'Neeraj.Kumar';
-- 3. Verify the override
SELECT JobName, Status, OverrideBy, OverrideDate
FROM dbo.JobExecutionHistory
WHERE JobName = 'PROD_WEEKLY_DTSGSID1' AND RunDate = CAST(GETDATE() AS DATE);

View File

@ -0,0 +1,10 @@
USE ProdDUTASJobSchedule;
GO
-- Set Job Schedule for the Year 2025
EXEC dbo.usp_GenerateJobSchedule @Year = 2025;
GO
-- Set Job Schedule for the Year 2026
EXEC dbo.usp_GenerateJobSchedule @Year = 2026;
GO

View File

@ -0,0 +1,68 @@
USE [ProdDUTASJobSchedule];
GO
/**************************************************************************************************
-- FILE: JobControl.sql
-- PURPOSE: Manage JobControl table - Create, Read, Update, Delete for a single job
-- TABLE: dbo.JobControl
**************************************************************************************************/
-------------------------------
-- SELECT - View Job Record
-------------------------------
SELECT *
FROM [dbo].[JobControl]
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
GO
-------------------------------
-- INSERT - Create Job Record
-------------------------------
INSERT INTO [dbo].[JobControl]
(
[JobName],
[ScheduledStartTime],
[SchedulerAction],
[IsActive],
[CreatedDate],
[Frequency],
[FrequencyPattern]
)
VALUES
(
N'PROD_DAILY_DTSBX215', -- Job name
'14:00:00', -- 2 PM (24-hour format)
N'CONTINUE', -- Action
1, -- Active
GETDATE(), -- Current system time
N'DAILY', -- Frequency
N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}' -- JSON pattern
);
GO
-------------------------------
-- UPDATE - Modify Job Record
-------------------------------
UPDATE [dbo].[JobControl]
SET
[ScheduledStartTime] = '15:00:00', -- Change to 3 PM
[SchedulerAction] = 'STOP', -- Change to STOP
[IsActive] = 0 -- Deactivate
WHERE
[JobName] = N'PROD_DAILY_DTSBX215';
GO
-------------------------------
-- DELETE - Remove Job Record
-------------------------------
DELETE FROM [dbo].[JobControl]
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
GO
-------------------------------
-- SELECT - View Job Record
-------------------------------
SELECT *
FROM [dbo].[JobControl]
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
GO

View File

@ -0,0 +1,56 @@
USE [ProdDUTASJobSchedule];
GO
/**************************************************************************************************
-- FILE: JobDependencies.sql
-- PURPOSE: Manage JobDependencies table - Create, Read, Update, Delete for a single dependency
-- TABLE: dbo.JobDependencies
**************************************************************************************************/
-------------------------------
-- SELECT - View Dependency
-------------------------------
SELECT *
FROM [dbo].[JobDependencies]
WHERE [JobName] = N'PROD_DAILY_DTSGSID0';
GO
-------------------------------
-- INSERT - Create Dependency
-------------------------------
INSERT INTO [dbo].[JobDependencies]
(
[JobName],
[PredecessorJobName]
)
VALUES
(
N'PROD_DAILY_DTSGSID0', -- Dependent job
N'PROD_DAILY_DTSBX305' -- Predecessor job
);
GO
-------------------------------
-- UPDATE - Modify Dependency
-------------------------------
UPDATE [dbo].[JobDependencies]
SET [PredecessorJobName] = N'PROD_DAILY_DTSBX215'
WHERE [JobName] = N'PROD_DAILY_DTSGSID0'
AND [PredecessorJobName] = N'PROD_DAILY_DTSBX305';
GO
-------------------------------
-- DELETE - Remove Dependency
-------------------------------
DELETE FROM [dbo].[JobDependencies]
WHERE [JobName] = N'PROD_DAILY_DTSGSID0'
AND [PredecessorJobName] = N'PROD_DAILY_DTSBX215';
GO
-------------------------------
-- SELECT - View Dependency
-------------------------------
SELECT *
FROM [dbo].[JobDependencies]
WHERE [JobName] = N'PROD_DAILY_DTSGSID0';
GO

View File

@ -0,0 +1,47 @@
USE msdb;
GO
PRINT '================================================================================';
PRINT 'SECTION 1: JOB CONTROL INFORMATION';
PRINT '================================================================================';
GO
-- View all active jobs
SELECT JobName, ScheduledStartTime, Frequency, IsActive
FROM ProdDUTASJobSchedule.dbo.JobControl
WHERE IsActive = 1
ORDER BY Frequency, ScheduledStartTime;
GO
-- View all inactive jobs
SELECT JobName, Frequency, ScheduledStartTime
FROM ProdDUTASJobSchedule.dbo.JobControl
WHERE IsActive = 0
ORDER BY Frequency;
GO
-- Find weekly/monthly jobs
SELECT JobName, Frequency, ScheduledStartTime
FROM ProdDUTASJobSchedule.dbo.JobControl
WHERE Frequency IN ('WEEKLY', 'MONTHLY')
ORDER BY Frequency, ScheduledStartTime;
GO
PRINT '================================================================================';
PRINT 'SECTION 2: JOB DEPENDENCIES';
PRINT '================================================================================';
GO
-- Check dependencies for a job
DECLARE @Job NVARCHAR(100) = 'PROD_MONTHLY_DTSCHGVR';
SELECT JobName, PredecessorJobName
FROM ProdDUTASJobSchedule.dbo.JobDependencies
WHERE JobName = @Job;
GO
-- Show dependency chain overview
SELECT d.JobName, d.PredecessorJobName, jc.ScheduledStartTime, jc.Frequency
FROM ProdDUTASJobSchedule.dbo.JobDependencies d
JOIN ProdDUTASJobSchedule.dbo.JobControl jc ON d.JobName = jc.JobName
ORDER BY jc.Frequency, jc.ScheduledStartTime;
GO

View File

@ -0,0 +1,42 @@
USE msdb;
GO
PRINT '================================================================================';
PRINT 'SECTION 1: SQL AGENT JOB STATUS';
PRINT '================================================================================';
GO
-- List all jobs in SQL Agent
SELECT name AS JobName, enabled, date_created, date_modified
FROM msdb.dbo.sysjobs
ORDER BY name;
GO
-- Job schedule summary
SELECT j.name AS JobName, s.name AS ScheduleName,
s.enabled, s.freq_type, s.active_start_date, s.active_start_time
FROM msdb.dbo.sysjobs j
JOIN msdb.dbo.sysjobschedules js ON j.job_id = js.job_id
JOIN msdb.dbo.sysschedules s ON js.schedule_id = s.schedule_id
ORDER BY j.name;
GO
-- Last job run details
SELECT j.name AS JobName,
h.run_status,
CASE h.run_status
WHEN 0 THEN 'Failed'
WHEN 1 THEN 'Succeeded'
WHEN 2 THEN 'Retry'
WHEN 3 THEN 'Canceled'
WHEN 4 THEN 'In Progress'
END AS StatusDescription,
msdb.dbo.agent_datetime(h.run_date, h.run_time) AS RunDateTime,
h.run_duration
FROM dbo.sysjobs j
LEFT JOIN dbo.sysjobhistory h ON j.job_id = h.job_id
WHERE h.instance_id IN (
SELECT MAX(instance_id) FROM dbo.sysjobhistory GROUP BY job_id
)
ORDER BY RunDateTime DESC;
GO

View File

@ -0,0 +1,3 @@
USE ProdDUTASJobSchedule;
GO
EXEC dbo.usp_ScheduleJobsForMonth;

View File

@ -0,0 +1,21 @@
USE ProdDUTASJobSchedule;
GO
DECLARE @Runday DATE = DATEADD(day, +0, CAST(GETDATE() AS DATE)); -- -1 for Yesterday
SELECT
jeh.ExecutionID,
jeh.JobName,
jeh.RunDate,
jc.ScheduledStartTime,
jeh.ActualStartTime,
jeh.ActualEndTime,
jeh.Status,
jeh.ErrorMessage,
jeh.OverrideFlag,
jeh.OverrideBy
FROM dbo.JobExecutionHistory jeh
INNER JOIN dbo.JobControl jc
ON jeh.JobName = jc.JobName
WHERE jeh.RunDate = @Runday
ORDER BY jc.ScheduledStartTime, jeh.ActualStartTime;

View File

@ -0,0 +1,9 @@
USE [ProdDUTASJobSchedule]
GO
-- 1. Preview missed jobs (safe, no run):
EXEC dbo.usp_TriggerMissedJobs @DryRun = 1;
-- 2. Actually trigger missed jobs:
EXEC dbo.usp_TriggerMissedJobs @DryRun = 0;