SQL Agen Scheduler - Updated
This commit is contained in:
@ -6,13 +6,20 @@ USE DevlDUTASJobSchedule;
|
|||||||
GO
|
GO
|
||||||
|
|
||||||
-- Create the main control table
|
-- Create the main control table
|
||||||
CREATE TABLE dbo.JobControl (
|
CREATE TABLE dbo.JobControl
|
||||||
JobID INT IDENTITY(1,1) PRIMARY KEY,
|
(
|
||||||
JobName VARCHAR(50) NOT NULL UNIQUE,
|
JobID INT IDENTITY(1,1) NOT NULL,
|
||||||
ScheduledStartTime TIME NOT NULL,
|
JobName VARCHAR(50) NOT NULL,
|
||||||
SchedulerAction VARCHAR(10) NOT NULL CHECK (SchedulerAction IN ('CONTINUE', 'STOP')),
|
ScheduledStartTime TIME(7) NOT NULL,
|
||||||
IsActive BIT DEFAULT 1,
|
SchedulerAction VARCHAR(10) NOT NULL, -- STOP or CONTINUE
|
||||||
CreatedDate DATETIME DEFAULT GETDATE()
|
IsActive BIT NOT NULL CONSTRAINT DF_JobControl_IsActive DEFAULT (1),
|
||||||
|
CreatedDate DATETIME NOT NULL CONSTRAINT DF_JobControl_CreatedDate DEFAULT (GETDATE()),
|
||||||
|
Frequency CHAR(20) NOT NULL CONSTRAINT DF_JobControl_Frequency DEFAULT ('DAILY'),
|
||||||
|
FrequencyPattern NVARCHAR(500) NULL, -- JSON scheduling rule
|
||||||
|
|
||||||
|
CONSTRAINT PK_JobControl PRIMARY KEY CLUSTERED (JobID ASC),
|
||||||
|
CONSTRAINT UQ_JobControl_JobName UNIQUE NONCLUSTERED (JobName ASC),
|
||||||
|
CONSTRAINT CK_JobControl_SchedulerAction CHECK (SchedulerAction IN ('STOP', 'CONTINUE'))
|
||||||
);
|
);
|
||||||
GO
|
GO
|
||||||
|
|
||||||
@ -60,3 +67,17 @@ CREATE TABLE dbo.JobExitCodes
|
|||||||
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
||||||
);
|
);
|
||||||
GO
|
GO
|
||||||
|
-- Create JobSchedule table
|
||||||
|
CREATE TABLE dbo.JobSchedule (
|
||||||
|
JobScheduleID INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
|
JobName VARCHAR(100) NOT NULL,
|
||||||
|
Frequency VARCHAR(20) CHECK (Frequency IN ('Monthly','Quarterly')),
|
||||||
|
ScheduledRule NVARCHAR(500) NULL, -- Copy of JSON or rule text from JobControl
|
||||||
|
ScheduledDate DATE NOT NULL, -- Planned date (before adjustment)
|
||||||
|
AdjustedRunDate DATE NOT NULL, -- Final working-day adjusted date
|
||||||
|
MonthOfSchedule CHAR(7) NOT NULL, -- 'YYYY-MM'
|
||||||
|
YearOfSchedule INT NOT NULL,
|
||||||
|
CreatedOn DATETIME DEFAULT GETDATE(),
|
||||||
|
CreatedBy VARCHAR(50) DEFAULT SUSER_SNAME()
|
||||||
|
);
|
||||||
|
GO
|
||||||
@ -1,31 +1,29 @@
|
|||||||
-- Clear existing data and insert 2025-2026 holidays (ignoring 0000000000 dates)
|
USE [DevlDUTASJobSchedule]
|
||||||
INSERT INTO dbo.FederalHolidays (HolidayDate, HolidayName, Year) VALUES
|
GO
|
||||||
-- 2025 Holidays
|
SET IDENTITY_INSERT [dbo].[FederalHolidays] ON
|
||||||
('2025-01-01', 'New Years Day', 2025),
|
GO
|
||||||
('2025-01-20', 'Martin Luther King Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (1, CAST(N'2025-01-01' AS Date), N'New Years Day', 2025)
|
||||||
('2025-02-17', 'Presidents Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (2, CAST(N'2025-01-20' AS Date), N'Martin Luther King Day', 2025)
|
||||||
('2025-05-26', 'Memorial Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (3, CAST(N'2025-02-17' AS Date), N'Presidents Day', 2025)
|
||||||
('2025-06-19', 'Juneteenth Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (4, CAST(N'2025-05-26' AS Date), N'Memorial Day', 2025)
|
||||||
('2025-07-04', 'Independence Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (5, CAST(N'2025-06-19' AS Date), N'Juneteenth Day', 2025)
|
||||||
('2025-09-01', 'Labor Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (6, CAST(N'2025-07-04' AS Date), N'Independence Day', 2025)
|
||||||
('2025-10-13', 'Columbus Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (7, CAST(N'2025-09-01' AS Date), N'Labor Day', 2025)
|
||||||
('2025-11-11', 'Veterans Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (8, CAST(N'2025-10-13' AS Date), N'Columbus Day', 2025)
|
||||||
('2025-11-27', 'Thanksgiving Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (9, CAST(N'2025-11-11' AS Date), N'Veterans Day', 2025)
|
||||||
('2025-12-25', 'Christmas Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (10, CAST(N'2025-11-27' AS Date), N'Thanksgiving Day', 2025)
|
||||||
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (11, CAST(N'2025-12-25' AS Date), N'Christmas Day', 2025)
|
||||||
-- 2026 Holidays
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (12, CAST(N'2026-01-01' AS Date), N'New Years Day', 2026)
|
||||||
('2026-01-01', 'New Years Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (13, CAST(N'2026-01-19' AS Date), N'Martin Luther King Day', 2026)
|
||||||
('2026-01-19', 'Martin Luther King Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (14, CAST(N'2026-02-16' AS Date), N'Presidents Day', 2026)
|
||||||
('2026-02-16', 'Presidents Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (15, CAST(N'2026-05-25' AS Date), N'Memorial Day', 2026)
|
||||||
('2026-05-25', 'Memorial Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (16, CAST(N'2026-06-19' AS Date), N'Juneteenth Day', 2026)
|
||||||
('2026-06-19', 'Juneteenth Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (17, CAST(N'2026-07-03' AS Date), N'Independence Day', 2026)
|
||||||
('2026-07-03', 'Independence Day', 2026), -- Note: July 3rd observed since July 4th is Saturday
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (18, CAST(N'2026-09-07' AS Date), N'Labor Day', 2026)
|
||||||
('2026-09-07', 'Labor Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (19, CAST(N'2026-10-12' AS Date), N'Columbus Day', 2026)
|
||||||
('2026-10-12', 'Columbus Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (20, CAST(N'2026-11-11' AS Date), N'Veterans Day', 2026)
|
||||||
('2026-11-11', 'Veterans Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (21, CAST(N'2026-11-26' AS Date), N'Thanksgiving Day', 2026)
|
||||||
('2026-11-26', 'Thanksgiving Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (22, CAST(N'2026-12-25' AS Date), N'Christmas Day', 2026)
|
||||||
('2026-12-25', 'Christmas Day', 2026);
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[FederalHolidays] OFF
|
||||||
GO
|
GO
|
||||||
|
|
||||||
-- Verify the data
|
|
||||||
SELECT * FROM dbo.FederalHolidays ORDER BY HolidayDate;
|
|
||||||
@ -1,79 +1,143 @@
|
|||||||
USE [DevlDUTASJobSchedule]
|
USE [DevlDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobControl] ON
|
||||||
INSERT INTO [dbo].[JobControl] (
|
GO
|
||||||
[JobName],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (1, N'DEVL_DAILY_DTSBX215', CAST(N'04:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[ScheduledStartTime],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (2, N'DEVL_DAILY_DTSBX305', CAST(N'04:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[SchedulerAction],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (3, N'DEVL_DAILY_DTSGSID0', CAST(N'06:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[IsActive],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (4, N'DEVL_DAILY_GSIRQ300', CAST(N'06:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[CreatedDate],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (5, N'DEVL_DAILY_DTSRQ202', CAST(N'06:10:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[Frequency]
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (6, N'DEVL_DAILY_DTSGSID1', CAST(N'06:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
)
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (7, N'DEVL_DAILY_DTSBX202', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
VALUES
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (8, N'DEVL_DAILY_DTSFT202', CAST(N'08:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX215', '4:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (9, N'DEVL_DAILY_DTSBX432', CAST(N'08:30:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX305', '4:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (10, N'DEVL_DAILY_DTSGACHD', CAST(N'09:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGSID0', '6:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (11, N'DEVL_DAILY_DTSBX303', CAST(N'10:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_GSIRQ300', '6:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (12, N'DEVL_DAILY_DTSGWAGE', CAST(N'14:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSRQ202', '6:10:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (13, N'DEVL_DAILY_DTSGCHKS', CAST(N'14:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGSID1', '6:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (14, N'DEVL_DAILY_DTSESDAY', CAST(N'14:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX202', '7:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (15, N'DEVL_DAILY_DTSGPAYT', CAST(N'14:10:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSFT202', '8:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (16, N'DEVL_DAILY_DTSDX145', CAST(N'16:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX432', '8:30:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (17, N'DEVL_DAILY_DTSBX629', CAST(N'16:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGACHD', '9:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (18, N'DEVL_DAILY_DTSBX630', CAST(N'16:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX303', '10:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (19, N'DEVL_DAILY_DTSFRAUD', CAST(N'16:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGWAGE', '14:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (20, N'DEVL_DAILY_DTSRACHD', CAST(N'17:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGCHKS', '14:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (21, N'DEVL_DAILY_DTSBXACH', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSESDAY', '14:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (22, N'DEVL_DAILY_DTSBXREG', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGPAYT', '14:10:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (23, N'DEVL_DAILY_DTSBX430', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSDX145', '16:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (24, N'DEVL_DAILY_DTSBX626', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX629', '16:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (25, N'DEVL_DAILY_DTSBX530', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX630', '16:30:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (26, N'DEVL_DAILY_DTSBXREL', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSFRAUD', '16:30:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (27, N'DEVL_DAILY_DTSBX450', CAST(N'17:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSRACHD', '17:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (28, N'DEVL_DAILY_DTSBX451', CAST(N'17:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBXACH', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (29, N'DEVL_DAILY_DTSPACHD', CAST(N'18:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBXREG', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (30, N'DEVL_DAILY_DTSPX148', CAST(N'18:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX430', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (31, N'DEVL_DAILY_DTSRQ325', CAST(N'18:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX626', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (32, N'DEVL_DAILY_DTSBX427', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX530', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (33, N'DEVL_DAILY_DTSPDAY1', CAST(N'18:10:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBXREL', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (34, N'DEVL_DAILY_DTSW4WGE', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX450', '17:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (35, N'DEVL_DAILY_DTSGSID2', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX451', '17:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (36, N'DEVL_DAILY_DTSGSID9', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSPACHD', '18:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (37, N'DEVL_DAILY_DTSMIN01', CAST(N'18:20:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSPX148', '18:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (38, N'DEVL_DAILY_DTSMIN02', CAST(N'18:20:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSRQ325', '18:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (39, N'DEVL_DAILY_DTSRQ459', CAST(N'19:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX427', '18:07:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (40, N'DEVL_DAILY_DTSBXPFL', CAST(N'19:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSPDAY1', '18:10:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (41, N'DEVL_DAILY_DESBD427', CAST(N'19:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSW4WGE', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (42, N'DEVL_DAILY_DTSBX403', CAST(N'20:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGSID2', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (43, N'DEVL_DAILY_DTSBE405', CAST(N'20:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSGSID9', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (44, N'DEVL_DAILY_DTSBX405', CAST(N'20:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSMIN01', '18:20:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (45, N'DEVL_DAILY_DTSRQ335', CAST(N'21:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSMIN02', '18:20:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (46, N'DEVL_DAILY_DTSBX601', CAST(N'21:25:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('DEVL_DAILY_DTSRQ459', '19:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (47, N'DEVL_WEEKLY_DTSGSID0', CAST(N'06:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('DEVL_DAILY_DTSBXPFL', '19:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (48, N'DEVL_WEEKLY_DTSGSID1', CAST(N'06:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('DEVL_DAILY_DESBD427', '19:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (49, N'DEVL_WEEKLY_DTSBX202', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('DEVL_DAILY_DTSBX403', '20:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (50, N'DEVL_WEEKLY_DTSFT202', CAST(N'08:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('DEVL_DAILY_DTSBE405', '20:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (51, N'DEVL_WEEKLY_DTSBX470', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX405', '20:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (52, N'DEVL_WEEKLY_DTSBXREJ', CAST(N'17:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Tue","Fri"]}')
|
||||||
('DEVL_DAILY_DTSRQ335', '21:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (53, N'DEVL_WEEKLY_DTSPDAY7', CAST(N'19:10:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('DEVL_DAILY_DTSBX601', '21:25:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (54, N'DEVL_WEEKLY_DTSBX122', CAST(N'19:14:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('DEVL_WEEKLY_DTSGSID0', '6:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (55, N'DEVL_WEEKLY_DTSRQ511', CAST(N'19:14:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('DEVL_WEEKLY_DTSGSID1', '6:15:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (56, N'DEVL_WEEKLY_DTSRQ444', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Mon"]}')
|
||||||
('DEVL_WEEKLY_DTSBX202', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (57, N'DEVL_WEEKLY_DTSRQ126', CAST(N'09:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Mon"]}')
|
||||||
('DEVL_WEEKLY_DTSFT202', '8:00:00', 'STOP', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (58, N'DEVL_MONTHLY_DTSRQ414', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"FirstWorkday"}')
|
||||||
('DEVL_WEEKLY_DTSBX470', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (59, N'DEVL_MONTHLY_DTSPMON1', CAST(N'19:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_WEEKLY_DTSBXREJ', '17:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (60, N'DEVL_MONTHLY_DTSCHGVB', CAST(N'19:26:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_WEEKLY_DTSPDAY7', '19:10:00', 'STOP', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (61, N'DEVL_MONTHLY_DTSCHGVR', CAST(N'19:27:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_WEEKLY_DTSBX122', '19:14:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (62, N'DEVL_MONTHLY_DTSVBKUP', CAST(N'19:26:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_WEEKLY_DTSRQ511', '19:14:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (63, N'DEVL_MONTHLY_DTSVRSTR', CAST(N'19:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_WEEKLY_DTSRQ444', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (64, N'DEVL_MONTHLY_DTSRQ442', CAST(N'19:37:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_WEEKLY_DTSRQ126', '9:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (65, N'DEVL_MONTHLY_DTSBX460', CAST(N'19:35:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_MONTHLY_DTSRQ414', '18:15:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (66, N'DEVL_MONTHLY_DTSRQ513', CAST(N'19:37:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('DEVL_MONTHLY_DTSPMON1', '19:15:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (67, N'DEVL_MONTHLY_DTSCHGDC', CAST(N'13:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"FirstWorkday"}')
|
||||||
('DEVL_MONTHLY_DTSCHGVB', '19:26:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (68, N'DEVL_QUARTERLY_DTSRQ119', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":3}')
|
||||||
('DEVL_MONTHLY_DTSCHGVR', '19:27:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (69, N'DEVL_QUARTERLY_DTSRQ902', CAST(N'18:16:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":1}')
|
||||||
('DEVL_MONTHLY_DTSVBKUP', '19:26:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (70, N'DEVL_QUARTERLY_DTSBX500', CAST(N'21:25:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":1}')
|
||||||
('DEVL_MONTHLY_DTSVRSTR', '19:30:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (71, N'DEVL_QUARTERLY_DTSRQ417', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":28},{"Month":5,"Day":31},{"Month":8,"Day":31},{"Month":11,"Day":30}]}')
|
||||||
('DEVL_MONTHLY_DTSRQ442', '19:37:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (72, N'DEVL_QUARTERLY_DTSRQ320', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":10},{"Month":5,"Day":10},{"Month":8,"Day":10},{"Month":11,"Day":10}]}')
|
||||||
('DEVL_MONTHLY_DTSBX460', '19:35:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (73, N'DEVL_QUARTERLY_DTSRQ713', CAST(N'00:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":3,"Day":31},{"Month":6,"Day":30},{"Month":9,"Day":30},{"Month":12,"Day":31}]}')
|
||||||
('DEVL_MONTHLY_DTSRQ513', '19:37:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (74, N'DEVL_QUARTERLY_DTSBX468', CAST(N'15:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":28},{"Month":5,"Day":30},{"Month":7,"Day":31},{"Month":10,"Day":30}]}')
|
||||||
('DEVL_MONTHLY_DTSCHGDC', '13:00:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY');
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (75, N'DEVL_QUARTERLY_DTSCHGQ1', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Rule":"FirstWorkdayOfQuarter"}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (76, N'DEVL_QUARTERLY_DTSCHGQ2', CAST(N'18:16:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Rule":"FirstWorkdayOfQuarter"}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (77, N'DEVL_QUARTERLY_DTSRQ327', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":7},{"Month":5,"Day":7},{"Month":8,"Day":7},{"Month":11,"Day":7}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (78, N'DEVL_QUARTERLY_DTSRQ328', CAST(N'18:16:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":7},{"Month":5,"Day":7},{"Month":8,"Day":7},{"Month":11,"Day":7}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (79, N'DEVL_QUARTERLY_DTSRQ412', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":1,"Day":15},{"Month":4,"Day":15},{"Month":7,"Day":15},{"Month":10,"Day":15}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (80, N'DEVL_QUARTERLY_DTSRQ793', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (81, N'DEVL_QUARTERLY_DTSWGE06', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (82, N'DEVL_QUARTERLY_DTSCHGRT', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (83, N'DEVL_QUARTERLY_DTSCHRGS', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (84, N'DEVL_QUARTERLY_DTSRQ540', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (85, N'DEVL_QUARTERLY_DTSRQ591', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (86, N'DEVL_QUARTERLY_DTSRTCHG', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (87, N'DEVL_QUARTERLY_DTSWGE01', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (88, N'DEVL_QUARTERLY_DESBD426', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (89, N'DEVL_ONDEMAND_DTSACH01', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (90, N'DEVL_ONDEMAND_DTSBX415', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (91, N'DEVL_ONDEMAND_DTSBX452', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (92, N'DEVL_ONDEMAND_DTSBX453', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (93, N'DEVL_ONDEMAND_DTSRQ120', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (94, N'DEVL_ONDEMAND_DTSRQ123', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (95, N'DEVL_ONDEMAND_DTSRQ125', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (96, N'DEVL_ONDEMAND_DTSRQ305', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (97, N'DEVL_ONDEMAND_DTSRQ306', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (98, N'DEVL_ONDEMAND_DTSRQ308', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (99, N'DEVL_ONDEMAND_DTSRQ311', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (100, N'DEVL_ONDEMAND_DTSRQ410', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (101, N'DEVL_ONDEMAND_DTSRQ411', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (102, N'DEVL_ONDEMAND_DTSRQ423', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (103, N'DEVL_ONDEMAND_DTSRQ426', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (104, N'DEVL_ONDEMAND_DTSRQ429', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (105, N'DEVL_ONDEMAND_DTSRQ439', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (106, N'DEVL_ONDEMAND_DTSRQ602', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (107, N'DEVL_ONDEMAND_DTSRQ606', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (108, N'DEVL_ONDEMAND_DTSRQ607', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (109, N'DEVL_ONDEMAND_DTSRQ609', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (110, N'DEVL_ONDEMAND_DTSRQ611', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (111, N'DEVL_ONDEMAND_DTSRQ612', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (112, N'DEVL_ONDEMAND_DTSRQ717', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (113, N'DEVL_ONDEMAND_DTSRQ718', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (114, N'DEVL_ONDEMAND_DTSRQ720', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (115, N'DEVL_ONDEMAND_DTSRQ721', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (116, N'DEVL_ONDEMAND_DTSRT715', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (117, N'DEVL_ONDEMAND_DTSRT716', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (118, N'DEVL_ONDEMAND_DTSRT717', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (119, N'DEVL_ONDEMAND_DTSRT718', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (120, N'DEVL_ONDEMAND_DTSRT719', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (121, N'DEVL_ONDEMAND_DTSRT720', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (122, N'DEVL_ONDEMAND_DTSRT722', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (123, N'DEVL_ONDEMAND_DTSRT723', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (124, N'DEVL_YEARLY_DTSRQ722', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (125, N'DEVL_YEARLY_DTSRQ451', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (126, N'DEVL_YEARLY_DTSRQ127', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (127, N'DEVL_YEARLY_DTSRQ321', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (128, N'DEVL_YEARLY_DTSRQ455', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (129, N'DEVL_YEARLY_DTSRQ500', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (130, N'DEVL_YEARLY_DTSRQ517', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (131, N'DEVL_YEARLY_DTSRQ518', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (132, N'DEVL_YEARLY_DTSRQ616', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (133, N'DEVL_YEARLY_DTSRQ701', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (134, N'DEVL_YEARLY_DTSRQ702', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (135, N'DEVL_YEARLY_DTSRQ704', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (136, N'DEVL_YEARLY_DTSRQ910', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobControl] OFF
|
||||||
|
GO
|
||||||
@ -1,80 +1,92 @@
|
|||||||
USE [DevlDUTASJobSchedule]
|
USE [DevlDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobDependencies] ON
|
||||||
TRUNCATE TABLE [dbo].[JobDependencies];
|
GO
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (1, N'DEVL_DAILY_DTSGSID0', N'DEVL_DAILY_DTSBX305')
|
||||||
INSERT INTO [dbo].[JobDependencies] (
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (2, N'DEVL_DAILY_GSIRQ300', N'DEVL_DAILY_DTSBX305')
|
||||||
[JobName],
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (3, N'DEVL_DAILY_DTSRQ202', N'DEVL_DAILY_GSIRQ300')
|
||||||
[PredecessorJobName]
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (4, N'DEVL_DAILY_DTSGSID1', N'DEVL_DAILY_GSIRQ300')
|
||||||
)
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (5, N'DEVL_DAILY_DTSBX202', N'DEVL_DAILY_GSIRQ300')
|
||||||
VALUES
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (6, N'DEVL_DAILY_DTSFT202', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSGSID0','DEVL_DAILY_DTSBX305'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (7, N'DEVL_DAILY_DTSBX432', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_GSIRQ300','DEVL_DAILY_DTSBX305'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (8, N'DEVL_DAILY_DTSGACHD', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSRQ202','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (9, N'DEVL_DAILY_DTSBX303', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSGSID1','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (10, N'DEVL_DAILY_DTSGWAGE', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSBX202','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (11, N'DEVL_DAILY_DTSGCHKS', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSFT202','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (12, N'DEVL_DAILY_DTSESDAY', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSBX432','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (13, N'DEVL_DAILY_DTSGPAYT', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSGACHD','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (14, N'DEVL_DAILY_DTSDX145', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSBX303','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (15, N'DEVL_DAILY_DTSBX629', N'DEVL_DAILY_GSIRQ300')
|
||||||
('DEVL_DAILY_DTSGWAGE','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (16, N'DEVL_DAILY_DTSBX630', N'DEVL_DAILY_DTSBX629')
|
||||||
('DEVL_DAILY_DTSGCHKS','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (17, N'DEVL_DAILY_DTSFRAUD', N'DEVL_DAILY_DTSBX629')
|
||||||
('DEVL_DAILY_DTSESDAY','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (18, N'DEVL_DAILY_DTSRACHD', N'DEVL_DAILY_DTSFRAUD')
|
||||||
('DEVL_DAILY_DTSGPAYT','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (19, N'DEVL_DAILY_DTSBXACH', N'DEVL_DAILY_DTSFRAUD')
|
||||||
('DEVL_DAILY_DTSDX145','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (20, N'DEVL_DAILY_DTSBXREG', N'DEVL_DAILY_DTSFRAUD')
|
||||||
('DEVL_DAILY_DTSBX629','DEVL_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (21, N'DEVL_DAILY_DTSBX430', N'DEVL_DAILY_DTSFRAUD')
|
||||||
('DEVL_DAILY_DTSBX630','DEVL_DAILY_DTSBX629'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (22, N'DEVL_DAILY_DTSBX626', N'DEVL_DAILY_DTSFRAUD')
|
||||||
('DEVL_DAILY_DTSFRAUD','DEVL_DAILY_DTSBX629'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (23, N'DEVL_DAILY_DTSBX530', N'DEVL_DAILY_DTSFRAUD')
|
||||||
('DEVL_DAILY_DTSRACHD','DEVL_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (24, N'DEVL_DAILY_DTSBXREL', N'DEVL_DAILY_DTSFRAUD')
|
||||||
('DEVL_DAILY_DTSBXACH','DEVL_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (25, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBXACH')
|
||||||
('DEVL_DAILY_DTSBXREG','DEVL_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (26, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBXREG')
|
||||||
('DEVL_DAILY_DTSBX430','DEVL_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (27, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBX430')
|
||||||
('DEVL_DAILY_DTSBX626','DEVL_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (28, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBX626')
|
||||||
('DEVL_DAILY_DTSBX530','DEVL_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (29, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBX530')
|
||||||
('DEVL_DAILY_DTSBXREL','DEVL_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (30, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBXREL')
|
||||||
('DEVL_DAILY_DTSBX450','DEVL_DAILY_DTSBXACH'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (31, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBXACH')
|
||||||
('DEVL_DAILY_DTSBX450','DEVL_DAILY_DTSBXREG'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (32, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBXREG')
|
||||||
('DEVL_DAILY_DTSBX450','DEVL_DAILY_DTSBX430'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (33, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBX430')
|
||||||
('DEVL_DAILY_DTSBX450','DEVL_DAILY_DTSBX626'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (34, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBX626')
|
||||||
('DEVL_DAILY_DTSBX450','DEVL_DAILY_DTSBX530'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (35, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBX530')
|
||||||
('DEVL_DAILY_DTSBX450','DEVL_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (36, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBXREL')
|
||||||
('DEVL_DAILY_DTSBX451','DEVL_DAILY_DTSBXACH'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (37, N'DEVL_DAILY_DTSPACHD', N'DEVL_DAILY_DTSBX450')
|
||||||
('DEVL_DAILY_DTSBX451','DEVL_DAILY_DTSBXREG'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (38, N'DEVL_DAILY_DTSPACHD', N'DEVL_DAILY_DTSBX451')
|
||||||
('DEVL_DAILY_DTSBX451','DEVL_DAILY_DTSBX430'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (39, N'DEVL_DAILY_DTSPX148', N'DEVL_DAILY_DTSPACHD')
|
||||||
('DEVL_DAILY_DTSBX451','DEVL_DAILY_DTSBX626'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (40, N'DEVL_DAILY_DTSRQ325', N'DEVL_DAILY_DTSPACHD')
|
||||||
('DEVL_DAILY_DTSBX451','DEVL_DAILY_DTSBX530'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (41, N'DEVL_DAILY_DTSBX427', N'DEVL_DAILY_DTSPX148')
|
||||||
('DEVL_DAILY_DTSBX451','DEVL_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (42, N'DEVL_DAILY_DTSBX427', N'DEVL_DAILY_DTSRQ325')
|
||||||
('DEVL_DAILY_DTSPACHD','DEVL_DAILY_DTSBX450'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (43, N'DEVL_DAILY_DTSPDAY1', N'DEVL_DAILY_DTSBX427')
|
||||||
('DEVL_DAILY_DTSPACHD','DEVL_DAILY_DTSBX451'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (44, N'DEVL_DAILY_DTSW4WGE', N'DEVL_DAILY_DTSPDAY1')
|
||||||
('DEVL_DAILY_DTSPX148','DEVL_DAILY_DTSPACHD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (45, N'DEVL_DAILY_DTSGSID2', N'DEVL_DAILY_DTSPDAY1')
|
||||||
('DEVL_DAILY_DTSRQ325','DEVL_DAILY_DTSPACHD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (46, N'DEVL_DAILY_DTSGSID9', N'DEVL_DAILY_DTSPDAY1')
|
||||||
('DEVL_DAILY_DTSBX427','DEVL_DAILY_DTSPX148'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (47, N'DEVL_DAILY_DTSMIN01', N'DEVL_DAILY_DTSW4WGE')
|
||||||
('DEVL_DAILY_DTSBX427','DEVL_DAILY_DTSRQ325'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (48, N'DEVL_DAILY_DTSMIN01', N'DEVL_DAILY_DTSGSID2')
|
||||||
('DEVL_DAILY_DTSPDAY1','DEVL_DAILY_DTSBX427'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (49, N'DEVL_DAILY_DTSMIN01', N'DEVL_DAILY_DTSGSID9')
|
||||||
('DEVL_DAILY_DTSW4WGE','DEVL_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (50, N'DEVL_DAILY_DTSMIN02', N'DEVL_DAILY_DTSW4WGE')
|
||||||
('DEVL_DAILY_DTSGSID2','DEVL_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (51, N'DEVL_DAILY_DTSMIN02', N'DEVL_DAILY_DTSGSID2')
|
||||||
('DEVL_DAILY_DTSGSID9','DEVL_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (52, N'DEVL_DAILY_DTSMIN02', N'DEVL_DAILY_DTSGSID9')
|
||||||
('DEVL_DAILY_DTSMIN01','DEVL_DAILY_DTSW4WGE'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (53, N'DEVL_DAILY_DTSRQ459', N'DEVL_DAILY_DTSMIN01')
|
||||||
('DEVL_DAILY_DTSMIN01','DEVL_DAILY_DTSGSID2'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (54, N'DEVL_DAILY_DTSRQ459', N'DEVL_DAILY_DTSMIN02')
|
||||||
('DEVL_DAILY_DTSMIN01','DEVL_DAILY_DTSGSID9'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (55, N'DEVL_DAILY_DTSBXPFL', N'DEVL_DAILY_DTSRQ459')
|
||||||
('DEVL_DAILY_DTSMIN02','DEVL_DAILY_DTSW4WGE'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (56, N'DEVL_DAILY_DESBD427', N'DEVL_DAILY_DTSBXPFL')
|
||||||
('DEVL_DAILY_DTSMIN02','DEVL_DAILY_DTSGSID2'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (57, N'DEVL_DAILY_DTSBX403', N'DEVL_DAILY_DTSBXPFL')
|
||||||
('DEVL_DAILY_DTSMIN02','DEVL_DAILY_DTSGSID9'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (58, N'DEVL_DAILY_DTSBE405', N'DEVL_DAILY_DTSBXPFL')
|
||||||
('DEVL_DAILY_DTSRQ459','DEVL_DAILY_DTSMIN01'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (59, N'DEVL_DAILY_DTSBX405', N'DEVL_DAILY_DTSBXPFL')
|
||||||
('DEVL_DAILY_DTSRQ459','DEVL_DAILY_DTSMIN02'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (60, N'DEVL_DAILY_DTSRQ335', N'DEVL_DAILY_DTSBXPFL')
|
||||||
('DEVL_DAILY_DTSBXPFL','DEVL_DAILY_DTSRQ459'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (61, N'DEVL_DAILY_DTSBX601', N'DEVL_DAILY_DTSRQ335')
|
||||||
('DEVL_DAILY_DESBD427','DEVL_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (62, N'DEVL_WEEKLY_DTSBXREJ', N'DEVL_DAILY_DTSBXREL')
|
||||||
('DEVL_DAILY_DTSBX403','DEVL_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (63, N'DEVL_WEEKLY_DTSBX122', N'DEVL_WEEKLY_DTSPDAY7')
|
||||||
('DEVL_DAILY_DTSBE405','DEVL_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (64, N'DEVL_WEEKLY_DTSRQ511', N'DEVL_WEEKLY_DTSPDAY7')
|
||||||
('DEVL_DAILY_DTSBX405','DEVL_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (65, N'DEVL_MONTHLY_DTSRQ414', N'DEVL_DAILY_DTSPDAY1')
|
||||||
('DEVL_DAILY_DTSRQ335','DEVL_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (66, N'DEVL_MONTHLY_DTSCHGVB', N'DEVL_MONTHLY_DTSPMON1')
|
||||||
('DEVL_DAILY_DTSBX601','DEVL_DAILY_DTSRQ335'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (67, N'DEVL_MONTHLY_DTSCHGVR', N'DEVL_MONTHLY_DTSCHGVB')
|
||||||
('DEVL_WEEKLY_DTSBXREJ','DEVL_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (68, N'DEVL_MONTHLY_DTSVBKUP', N'DEVL_MONTHLY_DTSPMON1')
|
||||||
('DEVL_WEEKLY_DTSBX122','DEVL_WEEKLY_DTSPDAY7'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (69, N'DEVL_MONTHLY_DTSVRSTR', N'DEVL_MONTHLY_DTSVBKUP')
|
||||||
('DEVL_WEEKLY_DTSRQ511','DEVL_WEEKLY_DTSPDAY7'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (70, N'DEVL_MONTHLY_DTSRQ442', N'DEVL_MONTHLY_DTSRQ513')
|
||||||
('DEVL_MONTHLY_DTSRQ414','DEVL_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (71, N'DEVL_QUARTERLY_DTSRQ119', N'DEVL_DAILY_DTSRQ325')
|
||||||
('DEVL_MONTHLY_DTSCHGVB','DEVL_MONTHLY_DTSPMON1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (72, N'DEVL_QUARTERLY_DTSRQ417', N'DEVL_DAILY_DTSRQ325')
|
||||||
('DEVL_MONTHLY_DTSCHGVR','DEVL_MONTHLY_DTSCHGVB'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (73, N'DEVL_QUARTERLY_DTSRQ320', N'DEVL_DAILY_DTSRQ325')
|
||||||
('DEVL_MONTHLY_DTSVBKUP','DEVL_MONTHLY_DTSPMON1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (74, N'DEVL_QUARTERLY_DTSRQ793', N'DEVL_DAILY_DTSRQ325')
|
||||||
('DEVL_MONTHLY_DTSVRSTR','DEVL_MONTHLY_DTSVBKUP'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (75, N'DEVL_QUARTERLY_DTSCHGQ1', N'DEVL_DAILY_DTSRQ325')
|
||||||
('DEVL_MONTHLY_DTSRQ442','DEVL_MONTHLY_DTSRQ513');
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (76, N'DEVL_QUARTERLY_DTSRQ327', N'DEVL_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (77, N'DEVL_QUARTERLY_DTSRQ412', N'DEVL_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (78, N'DEVL_QUARTERLY_DTSRQ591', N'DEVL_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (79, N'DEVL_QUARTERLY_DTSRQ902', N'DEVL_DAILY_DTSPDAY1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (80, N'DEVL_QUARTERLY_DTSCHGQ2', N'DEVL_DAILY_DTSPDAY1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (81, N'DEVL_QUARTERLY_DTSCHGRT', N'DEVL_QUARTERLY_DTSRQ591')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (82, N'DEVL_QUARTERLY_DTSRQ328', N'DEVL_QUARTERLY_DTSRQ327')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (83, N'DEVL_QUARTERLY_DTSBX500', N'DEVL_QUARTERLY_DTSRQ417')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (84, N'DEVL_QUARTERLY_DTSRQ713', N'DEVL_MONTHLY_DTSPMON1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (85, N'DEVL_QUARTERLY_DTSCHRGS', N'DEVL_QUARTERLY_DTSCHGRT')
|
||||||
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobDependencies] OFF
|
||||||
|
GO
|
||||||
|
|||||||
17
SQLAgent/01_Devl/2_Functions/fn_GetNextWorkday.sql
Normal file
17
SQLAgent/01_Devl/2_Functions/fn_GetNextWorkday.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
-- Returns the next valid workday on or after the given date
|
||||||
|
CREATE OR ALTER FUNCTION dbo.fn_GetNextWorkday (@InputDate DATE)
|
||||||
|
RETURNS DATE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @Workday DATE = @InputDate;
|
||||||
|
|
||||||
|
WHILE DATENAME(WEEKDAY, @Workday) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = @Workday)
|
||||||
|
BEGIN
|
||||||
|
SET @Workday = DATEADD(DAY, 1, @Workday);
|
||||||
|
END
|
||||||
|
|
||||||
|
RETURN @Workday;
|
||||||
|
END;
|
||||||
17
SQLAgent/01_Devl/2_Functions/fn_GetPreviousWorkday.sql
Normal file
17
SQLAgent/01_Devl/2_Functions/fn_GetPreviousWorkday.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
-- Returns the most recent valid workday before or equal to the given date
|
||||||
|
CREATE OR ALTER FUNCTION dbo.fn_GetPreviousWorkday (@InputDate DATE)
|
||||||
|
RETURNS DATE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @Workday DATE = @InputDate;
|
||||||
|
|
||||||
|
WHILE DATENAME(WEEKDAY, @Workday) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = @Workday)
|
||||||
|
BEGIN
|
||||||
|
SET @Workday = DATEADD(DAY, -1, @Workday);
|
||||||
|
END
|
||||||
|
|
||||||
|
RETURN @Workday;
|
||||||
|
END;
|
||||||
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_CheckJobConditions.sql
Normal file
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_CheckJobConditions.sql
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1,98 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_CreateDailyJobSchedule
|
||||||
|
@Env VARCHAR(10) = 'DEVL' -- Added parameter with default value
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobID INT,
|
||||||
|
@JobName SYSNAME,
|
||||||
|
@ScheduledStartTime TIME(0),
|
||||||
|
@Frequency NVARCHAR(20),
|
||||||
|
@FrequencyPattern NVARCHAR(MAX),
|
||||||
|
@ScheduleName SYSNAME,
|
||||||
|
@StartTimeInt INT,
|
||||||
|
@FreqInterval INT,
|
||||||
|
@TimeString VARCHAR(8),
|
||||||
|
@ActiveStartDate INT,
|
||||||
|
@dbName SYSNAME; -- Added variable for database name
|
||||||
|
|
||||||
|
-- Determine database name based on environment
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Prepare active start date as INT (YYYYMMDD)
|
||||||
|
SET @ActiveStartDate = CONVERT(INT, CONVERT(CHAR(8), GETDATE(), 112));
|
||||||
|
|
||||||
|
-- Dynamic SQL to fetch jobs from the appropriate database
|
||||||
|
DECLARE @Sql NVARCHAR(MAX);
|
||||||
|
SET @Sql = N'
|
||||||
|
DECLARE job_cursor CURSOR FOR
|
||||||
|
SELECT JobID, JobName, ScheduledStartTime, Frequency, FrequencyPattern
|
||||||
|
FROM ' + QUOTENAME(@dbName) + N'.dbo.JobControl
|
||||||
|
WHERE UPPER(Frequency) = ''DAILY''
|
||||||
|
AND IsActive = 1;';
|
||||||
|
|
||||||
|
-- Execute dynamic SQL to declare cursor
|
||||||
|
EXEC sp_executesql @Sql;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobID, @JobName, @ScheduledStartTime, @Frequency, @FrequencyPattern;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
-- Step 1: Convert ScheduledStartTime (TIME) to HH:MM:SS string
|
||||||
|
SET @TimeString = CONVERT(VARCHAR(8), @ScheduledStartTime, 108);
|
||||||
|
|
||||||
|
-- Step 2: Remove colons and convert to INT (HHMMSS)
|
||||||
|
SET @StartTimeInt = CONVERT(INT, REPLACE(@TimeString, ':', ''));
|
||||||
|
|
||||||
|
-- Step 3: Prepare schedule name
|
||||||
|
SET @ScheduleName = CONCAT(@JobName, '_DailySchedule');
|
||||||
|
|
||||||
|
-- Step 4: Fixed freq_interval for Monday to Friday
|
||||||
|
SET @FreqInterval = 62; -- Mon(2)+Tue(4)+Wed(8)+Thu(16)+Fri(32) = 62
|
||||||
|
|
||||||
|
-- Step 5: Delete existing schedule if it exists (idempotency)
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM msdb.dbo.sysschedules s
|
||||||
|
JOIN msdb.dbo.sysjobschedules js ON s.schedule_id = js.schedule_id
|
||||||
|
JOIN msdb.dbo.sysjobs j ON j.job_id = js.job_id
|
||||||
|
WHERE j.name = @JobName AND s.name = @ScheduleName
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule @schedule_name = @ScheduleName;
|
||||||
|
END
|
||||||
|
|
||||||
|
-- Step 6: Create weekly schedule (Monday to Friday) running once per day
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 8, -- weekly
|
||||||
|
@freq_interval = @FreqInterval,
|
||||||
|
@freq_recurrence_factor = 1, -- every week
|
||||||
|
@active_start_time = @StartTimeInt,
|
||||||
|
@active_start_date = @ActiveStartDate;
|
||||||
|
|
||||||
|
-- Step 7: Attach schedule to job
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
-- Fetch next job
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobID, @JobName, @ScheduledStartTime, @Frequency, @FrequencyPattern;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
|
||||||
|
PRINT 'Daily job schedules (Monday to Friday) created successfully for ' + @dbName;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_CreateSQLAgentJob.sql
Normal file
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_CreateSQLAgentJob.sql
Normal file
Binary file not shown.
@ -0,0 +1,223 @@
|
|||||||
|
USE [msdb];
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_CreateWeeklySchedules
|
||||||
|
@Env VARCHAR(10) = 'DEVL' -- Added parameter with default value
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobName SYSNAME,
|
||||||
|
@FrequencyPattern NVARCHAR(MAX),
|
||||||
|
@StartTime VARCHAR(50),
|
||||||
|
@ScheduleName SYSNAME,
|
||||||
|
@StartTimeInt INT,
|
||||||
|
@FreqInterval INT,
|
||||||
|
@ActiveDate INT,
|
||||||
|
@computedFreq INT,
|
||||||
|
@dbName SYSNAME; -- Added variable for database name
|
||||||
|
|
||||||
|
-- Determine database name based on environment
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
SET @ActiveDate = CONVERT(INT, CONVERT(CHAR(8), GETDATE(), 112));
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
-- Dynamic SQL for cursor to fetch active weekly jobs from appropriate database
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
DECLARE @Sql NVARCHAR(MAX);
|
||||||
|
SET @Sql = N'
|
||||||
|
DECLARE job_cursor CURSOR FAST_FORWARD FOR
|
||||||
|
SELECT
|
||||||
|
JobName,
|
||||||
|
FrequencyPattern,
|
||||||
|
ScheduledStartTime
|
||||||
|
FROM ' + QUOTENAME(@dbName) + N'.dbo.JobControl
|
||||||
|
WHERE UPPER(Frequency) = ''WEEKLY''
|
||||||
|
AND IsActive = 1;';
|
||||||
|
|
||||||
|
-- Execute dynamic SQL to declare cursor
|
||||||
|
EXEC sp_executesql @Sql;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Reset per-job variables
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SET @FreqInterval = 0;
|
||||||
|
SET @computedFreq = 0;
|
||||||
|
SET @StartTimeInt = NULL;
|
||||||
|
SET @ScheduleName = NULL;
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Correctly format the start time (HHMMSS without extra zeros)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SET @StartTime = LTRIM(RTRIM(ISNULL(@StartTime, '00:00:00')));
|
||||||
|
|
||||||
|
-- Parse time and convert to HHMMSS integer
|
||||||
|
DECLARE @TimeParts TABLE (part NVARCHAR(10), idx INT);
|
||||||
|
INSERT INTO @TimeParts (part, idx)
|
||||||
|
SELECT value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) - 1
|
||||||
|
FROM STRING_SPLIT(LEFT(@StartTime, 8), ':');
|
||||||
|
|
||||||
|
DECLARE @Hours INT, @Minutes INT, @Seconds INT;
|
||||||
|
|
||||||
|
SELECT @Hours = CAST(part AS INT) FROM @TimeParts WHERE idx = 0;
|
||||||
|
SELECT @Minutes = CAST(part AS INT) FROM @TimeParts WHERE idx = 1;
|
||||||
|
SELECT @Seconds = CAST(part AS INT) FROM @TimeParts WHERE idx = 2;
|
||||||
|
|
||||||
|
-- Ensure valid time ranges
|
||||||
|
SET @Hours = ISNULL(@Hours, 0);
|
||||||
|
SET @Minutes = ISNULL(@Minutes, 0);
|
||||||
|
SET @Seconds = ISNULL(@Seconds, 0);
|
||||||
|
|
||||||
|
IF @Hours < 0 OR @Hours > 23 SET @Hours = 0;
|
||||||
|
IF @Minutes < 0 OR @Minutes > 59 SET @Minutes = 0;
|
||||||
|
IF @Seconds < 0 OR @Seconds > 59 SET @Seconds = 0;
|
||||||
|
|
||||||
|
SET @StartTimeInt = (@Hours * 10000) + (@Minutes * 100) + @Seconds;
|
||||||
|
|
||||||
|
SET @ScheduleName = CONCAT(@JobName, '_WeeklySchedule');
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Parse JSON days using a local temporary table
|
||||||
|
------------------------------------------------------------------
|
||||||
|
CREATE TABLE #Days (DayName NVARCHAR(10));
|
||||||
|
|
||||||
|
INSERT INTO #Days (DayName)
|
||||||
|
SELECT TRIM(value)
|
||||||
|
FROM OPENJSON(ISNULL(@FrequencyPattern, '{}'), '$.Days');
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Compute bitmask correctly (values should be 1-127)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SELECT @computedFreq = ISNULL(SUM(
|
||||||
|
CASE UPPER(DayName)
|
||||||
|
WHEN 'SUN' THEN 1
|
||||||
|
WHEN 'MON' THEN 2
|
||||||
|
WHEN 'TUE' THEN 4
|
||||||
|
WHEN 'WED' THEN 8
|
||||||
|
WHEN 'THU' THEN 16
|
||||||
|
WHEN 'FRI' THEN 32
|
||||||
|
WHEN 'SAT' THEN 64
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
), 0)
|
||||||
|
FROM #Days;
|
||||||
|
|
||||||
|
DROP TABLE #Days; -- Explicitly drop the temp table
|
||||||
|
|
||||||
|
SET @FreqInterval = ISNULL(@computedFreq, 0);
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Validate freq_interval (must be 1..127)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
IF @FreqInterval < 1 OR @FreqInterval > 127
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Warning: Weekly job ' + @JobName +
|
||||||
|
' has invalid freq_interval (' + ISNULL(CAST(@FreqInterval AS VARCHAR(10)), 'NULL') +
|
||||||
|
'). Days found: ' + ISNULL(@FrequencyPattern, 'None') + '. Skipping.';
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
CONTINUE;
|
||||||
|
END
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Debug output to verify calculations
|
||||||
|
------------------------------------------------------------------
|
||||||
|
PRINT 'Job: ' + @JobName +
|
||||||
|
', Days: ' + @FrequencyPattern +
|
||||||
|
', FreqInterval: ' + CAST(@FreqInterval AS VARCHAR(3)) +
|
||||||
|
', StartTime: ' + CAST(@StartTimeInt AS VARCHAR(6));
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Safely detach and delete any existing schedule with this name
|
||||||
|
-- Use TRY/CATCH for schedule operations since non-existence is expected
|
||||||
|
------------------------------------------------------------------
|
||||||
|
BEGIN TRY
|
||||||
|
DECLARE @schedule_id INT;
|
||||||
|
DECLARE @attach_count INT;
|
||||||
|
|
||||||
|
-- Check if schedule exists and get its ID
|
||||||
|
SELECT @schedule_id = s.schedule_id
|
||||||
|
FROM msdb.dbo.sysschedules s
|
||||||
|
JOIN msdb.dbo.sysjobschedules js ON s.schedule_id = js.schedule_id
|
||||||
|
JOIN msdb.dbo.sysjobs j ON j.job_id = js.job_id
|
||||||
|
WHERE j.name = @JobName AND s.name = @ScheduleName;
|
||||||
|
|
||||||
|
IF @schedule_id IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
-- Detach from this job (if attached)
|
||||||
|
EXEC msdb.dbo.sp_detach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
-- Check if schedule still attached to other jobs
|
||||||
|
SELECT @attach_count = COUNT(*)
|
||||||
|
FROM msdb.dbo.sysjobschedules js
|
||||||
|
WHERE js.schedule_id = @schedule_id;
|
||||||
|
|
||||||
|
IF @attach_count = 0
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
PRINT 'Existing schedule deleted: ' + @ScheduleName;
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Notice: schedule ' + @ScheduleName + ' could not be deleted because it is still attached to other jobs.';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
-- Schedule operations might fail if schedule doesn't exist, which is fine
|
||||||
|
PRINT 'Notice: ' + ERROR_MESSAGE() + ' - proceeding with new schedule creation.';
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Create the unified weekly schedule with subday config
|
||||||
|
------------------------------------------------------------------
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 8, -- Weekly
|
||||||
|
@freq_interval = @FreqInterval, -- Bitmask of weekdays
|
||||||
|
@freq_recurrence_factor = 1, -- Every week
|
||||||
|
@freq_subday_type = 1, -- Once per day
|
||||||
|
@freq_subday_interval = 1,
|
||||||
|
@active_start_time = @StartTimeInt,
|
||||||
|
@active_start_date = @ActiveDate;
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Attach the schedule to the job
|
||||||
|
------------------------------------------------------------------
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
PRINT 'Weekly schedule created for job: ' + @JobName +
|
||||||
|
' (Days=' + CAST(@FreqInterval AS VARCHAR(10)) +
|
||||||
|
', Time=' + RIGHT('000000' + CAST(@StartTimeInt AS VARCHAR(6)), 6) + ')';
|
||||||
|
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
PRINT 'Error scheduling job ' + ISNULL(@JobName, 'Unknown') + ': ' + ERROR_MESSAGE();
|
||||||
|
END CATCH;
|
||||||
|
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
|
||||||
|
PRINT 'All weekly job schedules processed for ' + @dbName;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_ForceComplete.sql
Normal file
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_ForceComplete.sql
Normal file
Binary file not shown.
261
SQLAgent/01_Devl/3_Stored_Procedures/usp_GenerateJobSchedule.sql
Normal file
261
SQLAgent/01_Devl/3_Stored_Procedures/usp_GenerateJobSchedule.sql
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
USE [DevlDUTASJobSchedule];
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_GenerateJobSchedule
|
||||||
|
@Year INT
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 1. Cleanup existing schedule data for this year
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DELETE FROM dbo.JobSchedule WHERE YearOfSchedule = @Year;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 2. Variable declarations
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DECLARE
|
||||||
|
@JobName VARCHAR(100),
|
||||||
|
@Frequency VARCHAR(20),
|
||||||
|
@Pattern NVARCHAR(2000),
|
||||||
|
@ScheduledTime TIME,
|
||||||
|
@RuleName NVARCHAR(100),
|
||||||
|
@Month INT,
|
||||||
|
@BaseDate DATE,
|
||||||
|
@ScheduledDate DATE,
|
||||||
|
@AdjustedDate DATE,
|
||||||
|
@FailSafeDate DATE = '9999-12-31';
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 3. Temporary table to process jobs more efficiently
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
CREATE TABLE #JobProcessing (
|
||||||
|
JobName VARCHAR(100),
|
||||||
|
Frequency VARCHAR(20),
|
||||||
|
Pattern NVARCHAR(2000),
|
||||||
|
ScheduledTime TIME,
|
||||||
|
RuleName NVARCHAR(100),
|
||||||
|
MonthsJSON NVARCHAR(MAX),
|
||||||
|
DayNum INT,
|
||||||
|
HasExplicitSchedule BIT
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Populate temporary table with parsed JSON data
|
||||||
|
INSERT INTO #JobProcessing (JobName, Frequency, Pattern, ScheduledTime, RuleName, MonthsJSON, DayNum, HasExplicitSchedule)
|
||||||
|
SELECT
|
||||||
|
jc.JobName,
|
||||||
|
jc.Frequency,
|
||||||
|
jc.FrequencyPattern,
|
||||||
|
jc.ScheduledStartTime,
|
||||||
|
JSON_VALUE(jc.FrequencyPattern, '$.Rule'),
|
||||||
|
JSON_QUERY(jc.FrequencyPattern, '$.Months'),
|
||||||
|
JSON_VALUE(jc.FrequencyPattern, '$.Day'),
|
||||||
|
CASE WHEN JSON_QUERY(jc.FrequencyPattern, '$.Schedule') IS NOT NULL THEN 1 ELSE 0 END
|
||||||
|
FROM dbo.JobControl jc
|
||||||
|
WHERE UPPER(jc.Frequency) IN ('MONTHLY','QUARTERLY')
|
||||||
|
AND jc.IsActive = 1;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 4. Process MONTHLY jobs
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
CASE
|
||||||
|
WHEN jp.RuleName = 'FirstWorkday' THEN dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, m.MonthNum, 1))
|
||||||
|
WHEN jp.RuleName = 'LastWorkday' THEN dbo.fn_GetPreviousWorkday(EOMONTH(DATEFROMPARTS(@Year, m.MonthNum, 1)))
|
||||||
|
ELSE @FailSafeDate
|
||||||
|
END AS ScheduledDate,
|
||||||
|
CASE
|
||||||
|
WHEN jp.RuleName = 'FirstWorkday' THEN dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, m.MonthNum, 1))
|
||||||
|
WHEN jp.RuleName = 'LastWorkday' THEN dbo.fn_GetPreviousWorkday(EOMONTH(DATEFROMPARTS(@Year, m.MonthNum, 1)))
|
||||||
|
ELSE @FailSafeDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, m.MonthNum, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) m(MonthNum)
|
||||||
|
WHERE jp.Frequency = 'MONTHLY'
|
||||||
|
AND jp.RuleName IN ('FirstWorkday', 'LastWorkday');
|
||||||
|
|
||||||
|
-- Handle monthly jobs with unknown rules
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
@FailSafeDate,
|
||||||
|
@FailSafeDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, m.MonthNum, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) m(MonthNum)
|
||||||
|
WHERE jp.Frequency = 'MONTHLY'
|
||||||
|
AND jp.RuleName NOT IN ('FirstWorkday', 'LastWorkday');
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 5. Process QUARTERLY jobs - FirstWorkdayOfQuarter
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, q.StartMonth, 1)),
|
||||||
|
dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, q.StartMonth, 1)),
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, q.StartMonth, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(4),(7),(10)) q(StartMonth)
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.RuleName = 'FirstWorkdayOfQuarter';
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 6. Process QUARTERLY jobs - Months array with Day number
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
;WITH QuarterlyMonths AS (
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
CAST(m.[value] AS INT) AS MonthNum,
|
||||||
|
jp.DayNum
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS APPLY OPENJSON(jp.MonthsJSON) m
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.MonthsJSON IS NOT NULL
|
||||||
|
AND jp.DayNum IS NOT NULL
|
||||||
|
AND jp.RuleName IS NULL
|
||||||
|
AND jp.HasExplicitSchedule = 0
|
||||||
|
),
|
||||||
|
QuarterlyDates AS (
|
||||||
|
SELECT
|
||||||
|
qm.JobName,
|
||||||
|
qm.Frequency,
|
||||||
|
qm.Pattern,
|
||||||
|
qm.MonthNum,
|
||||||
|
qm.DayNum,
|
||||||
|
CASE
|
||||||
|
WHEN qm.DayNum <= DAY(EOMONTH(DATEFROMPARTS(@Year, qm.MonthNum, 1)))
|
||||||
|
THEN DATEFROMPARTS(@Year, qm.MonthNum, qm.DayNum)
|
||||||
|
ELSE EOMONTH(DATEFROMPARTS(@Year, qm.MonthNum, 1))
|
||||||
|
END AS BaseDate
|
||||||
|
FROM QuarterlyMonths qm
|
||||||
|
)
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
qd.JobName,
|
||||||
|
qd.Frequency,
|
||||||
|
qd.Pattern,
|
||||||
|
qd.BaseDate,
|
||||||
|
CASE
|
||||||
|
WHEN DATENAME(WEEKDAY, qd.BaseDate) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = qd.BaseDate)
|
||||||
|
THEN dbo.fn_GetPreviousWorkday(qd.BaseDate)
|
||||||
|
ELSE qd.BaseDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(qd.BaseDate, 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM QuarterlyDates qd;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 7. Process QUARTERLY jobs - Explicit Schedule array
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
;WITH ExplicitSchedules AS (
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
s.[Month] AS MonthNum,
|
||||||
|
s.[Day] AS DayNum
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS APPLY OPENJSON(jp.Pattern, '$.Schedule')
|
||||||
|
WITH (
|
||||||
|
[Month] INT '$.Month',
|
||||||
|
[Day] INT '$.Day'
|
||||||
|
) s
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.HasExplicitSchedule = 1
|
||||||
|
),
|
||||||
|
ExplicitScheduleDates AS (
|
||||||
|
SELECT
|
||||||
|
es.JobName,
|
||||||
|
es.Frequency,
|
||||||
|
es.Pattern,
|
||||||
|
es.MonthNum,
|
||||||
|
es.DayNum,
|
||||||
|
CASE
|
||||||
|
WHEN es.DayNum <= DAY(EOMONTH(DATEFROMPARTS(@Year, es.MonthNum, 1)))
|
||||||
|
THEN DATEFROMPARTS(@Year, es.MonthNum, es.DayNum)
|
||||||
|
ELSE EOMONTH(DATEFROMPARTS(@Year, es.MonthNum, 1))
|
||||||
|
END AS BaseDate
|
||||||
|
FROM ExplicitSchedules es
|
||||||
|
)
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
esd.JobName,
|
||||||
|
esd.Frequency,
|
||||||
|
esd.Pattern,
|
||||||
|
esd.BaseDate,
|
||||||
|
CASE
|
||||||
|
WHEN DATENAME(WEEKDAY, esd.BaseDate) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = esd.BaseDate)
|
||||||
|
THEN dbo.fn_GetPreviousWorkday(esd.BaseDate)
|
||||||
|
ELSE esd.BaseDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(esd.BaseDate, 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM ExplicitScheduleDates esd;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 8. Handle any quarterly jobs that didn't match the patterns above
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
@FailSafeDate,
|
||||||
|
@FailSafeDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, 1, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT 1 FROM dbo.JobSchedule js
|
||||||
|
WHERE js.JobName = jp.JobName AND js.YearOfSchedule = @Year
|
||||||
|
);
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 9. Cleanup and output
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DROP TABLE #JobProcessing;
|
||||||
|
|
||||||
|
-- Update any NULL dates to fail-safe date
|
||||||
|
UPDATE dbo.JobSchedule
|
||||||
|
SET ScheduledDate = @FailSafeDate,
|
||||||
|
AdjustedRunDate = @FailSafeDate
|
||||||
|
WHERE YearOfSchedule = @Year
|
||||||
|
AND (ScheduledDate IS NULL OR AdjustedRunDate IS NULL);
|
||||||
|
|
||||||
|
DECLARE @RecordCount INT = (SELECT COUNT(*) FROM dbo.JobSchedule WHERE YearOfSchedule = @Year);
|
||||||
|
|
||||||
|
PRINT 'Job schedule generation completed for year ' + CAST(@Year AS VARCHAR(4)) +
|
||||||
|
'. Total records created: ' + CAST(@RecordCount AS VARCHAR(10));
|
||||||
|
END;
|
||||||
|
GO
|
||||||
160
SQLAgent/01_Devl/3_Stored_Procedures/usp_ScheduleJob.sql
Normal file
160
SQLAgent/01_Devl/3_Stored_Procedures/usp_ScheduleJob.sql
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
USE [msdb]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[usp_ScheduleJob] Script Date: 10/18/2025 9:52:04 AM ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE [dbo].[usp_ScheduleJob]
|
||||||
|
@JobName NVARCHAR(100),
|
||||||
|
@Env CHAR(4), -- 'DEVL' | 'TEST' | 'PROD'
|
||||||
|
@RunDate DATE,
|
||||||
|
@RunTime TIME
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobId UNIQUEIDENTIFIER,
|
||||||
|
@ScheduleName NVARCHAR(200),
|
||||||
|
@dbName NVARCHAR(128),
|
||||||
|
@ActiveStartDate INT,
|
||||||
|
@ActiveStartTime INT,
|
||||||
|
@Sql NVARCHAR(MAX),
|
||||||
|
@JobExists BIT = 0,
|
||||||
|
@ScheduleId INT;
|
||||||
|
|
||||||
|
-- Table variable must be declared separately and at the top level
|
||||||
|
DECLARE @ExistingSchedules TABLE (
|
||||||
|
schedule_id INT,
|
||||||
|
schedule_name NVARCHAR(200)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Map environment to actual DB name
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
ELSE 'DevlDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Validate parameters
|
||||||
|
IF @Env NOT IN ('DEVL','TEST','PROD')
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('Env must be one of: DEVL, TEST, PROD.', 16, 1);
|
||||||
|
RETURN;
|
||||||
|
END
|
||||||
|
|
||||||
|
IF @RunDate < CAST(GETDATE() AS DATE)
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('RunDate cannot be in the past.', 16, 1);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Check if job exists in JobControl table
|
||||||
|
SET @Sql = N'SELECT @JobExists = 1 FROM ' + QUOTENAME(@dbName) + '.dbo.JobControl WHERE JobName = @JobNameParam';
|
||||||
|
|
||||||
|
EXEC sp_executesql @Sql,
|
||||||
|
N'@JobNameParam NVARCHAR(100), @JobExists BIT OUTPUT',
|
||||||
|
@JobNameParam = @JobName,
|
||||||
|
@JobExists = @JobExists OUTPUT;
|
||||||
|
|
||||||
|
IF @JobExists = 0
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('Job %s not found in JobControl table.', 16, 1, @JobName);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Activate job in control table
|
||||||
|
SET @Sql = N'UPDATE ' + QUOTENAME(@dbName) + '.dbo.JobControl SET IsActive = 1 WHERE JobName = @JobNameParam';
|
||||||
|
EXEC sp_executesql @Sql,
|
||||||
|
N'@JobNameParam NVARCHAR(100)',
|
||||||
|
@JobNameParam = @JobName;
|
||||||
|
|
||||||
|
PRINT 'Job activated in JobControl.';
|
||||||
|
|
||||||
|
-- Convert date/time to SQL Agent format
|
||||||
|
SET @ActiveStartDate = CONVERT(INT, CONVERT(CHAR(8), @RunDate, 112));
|
||||||
|
SET @ActiveStartTime = DATEPART(HOUR, @RunTime) * 10000 +
|
||||||
|
DATEPART(MINUTE, @RunTime) * 100 +
|
||||||
|
DATEPART(SECOND, @RunTime);
|
||||||
|
|
||||||
|
SET @ScheduleName = @JobName + '_MonthlySchedule';
|
||||||
|
|
||||||
|
-- Get job id
|
||||||
|
SELECT @JobId = job_id
|
||||||
|
FROM msdb.dbo.sysjobs
|
||||||
|
WHERE name = @JobName;
|
||||||
|
|
||||||
|
IF @JobId IS NULL
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('SQL Agent job "%s" not found.', 16, 1, @JobName);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
|
-- Detach and delete all existing schedules for this job
|
||||||
|
INSERT INTO @ExistingSchedules (schedule_id, schedule_name)
|
||||||
|
SELECT s.schedule_id, s.name
|
||||||
|
FROM msdb.dbo.sysschedules AS s
|
||||||
|
INNER JOIN msdb.dbo.sysjobschedules AS js ON s.schedule_id = js.schedule_id
|
||||||
|
WHERE js.job_id = @JobId;
|
||||||
|
|
||||||
|
DECLARE @OldScheduleId INT, @OldScheduleName NVARCHAR(200);
|
||||||
|
|
||||||
|
DECLARE cur CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT schedule_id, schedule_name FROM @ExistingSchedules;
|
||||||
|
|
||||||
|
OPEN cur;
|
||||||
|
FETCH NEXT FROM cur INTO @OldScheduleId, @OldScheduleName;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Detaching old schedule: ' + @OldScheduleName;
|
||||||
|
EXEC msdb.dbo.sp_detach_schedule @job_id = @JobId, @schedule_name = @OldScheduleName;
|
||||||
|
|
||||||
|
PRINT 'Deleting old schedule: ' + @OldScheduleName;
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule @schedule_name = @OldScheduleName;
|
||||||
|
|
||||||
|
FETCH NEXT FROM cur INTO @OldScheduleId, @OldScheduleName;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE cur;
|
||||||
|
DEALLOCATE cur;
|
||||||
|
|
||||||
|
-- Create new one-time schedule
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 1, -- One-time
|
||||||
|
@active_start_date = @ActiveStartDate,
|
||||||
|
@active_start_time = @ActiveStartTime;
|
||||||
|
|
||||||
|
-- Attach schedule to job
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_id = @JobId,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
COMMIT TRANSACTION;
|
||||||
|
|
||||||
|
PRINT 'New schedule created for job "' + @JobName +
|
||||||
|
'" on ' + CONVERT(VARCHAR(10), @RunDate, 120) +
|
||||||
|
' at ' + CONVERT(VARCHAR(8), @RunTime, 108);
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF @@TRANCOUNT > 0
|
||||||
|
ROLLBACK TRANSACTION;
|
||||||
|
|
||||||
|
DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
|
||||||
|
RAISERROR('Error creating schedule: %s', 16, 1, @ErrorMessage);
|
||||||
|
END CATCH;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_ScheduleJobsForMonth
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE @MonthKey CHAR(7) = FORMAT(GETDATE(), 'yyyy-MM');
|
||||||
|
DECLARE @Year INT = YEAR(GETDATE());
|
||||||
|
DECLARE @JobName VARCHAR(100);
|
||||||
|
DECLARE @RunDate DATE;
|
||||||
|
DECLARE @RunTime TIME;
|
||||||
|
DECLARE @Env VARCHAR(10) = 'DEVL'; -- configurable per environment
|
||||||
|
|
||||||
|
DECLARE job_cursor CURSOR FOR
|
||||||
|
SELECT js.JobName, js.AdjustedRunDate, jc.ScheduledStartTime
|
||||||
|
FROM dbo.JobSchedule js
|
||||||
|
INNER JOIN dbo.JobControl jc ON js.JobName = jc.JobName
|
||||||
|
WHERE js.MonthOfSchedule = @MonthKey
|
||||||
|
AND jc.IsActive = 1;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @RunDate, @RunTime;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.usp_ScheduleJob
|
||||||
|
@JobName = @JobName,
|
||||||
|
@Env = @Env,
|
||||||
|
@RunDate = @RunDate,
|
||||||
|
@RunTime = @RunTime;
|
||||||
|
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @RunDate, @RunTime;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
END
|
||||||
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_TriggerMissedJobs.sql
Normal file
BIN
SQLAgent/01_Devl/3_Stored_Procedures/usp_TriggerMissedJobs.sql
Normal file
Binary file not shown.
Binary file not shown.
10
SQLAgent/01_Devl/4_Job_Maintenance/ActivateOnDemandJob.sql
Normal file
10
SQLAgent/01_Devl/4_Job_Maintenance/ActivateOnDemandJob.sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Schedule DEVL OnDemand Job on 03 Nov at 18:15 PM
|
||||||
|
------------------------------------------------
|
||||||
|
EXEC dbo.usp_ScheduleJob
|
||||||
|
@JobName='DEVL_MONTHLY_DTSRQ414',
|
||||||
|
@Env='DEVL',
|
||||||
|
@RunDate='2025-11-03',
|
||||||
|
@RunTime='18:15:00';
|
||||||
141
SQLAgent/01_Devl/4_Job_Maintenance/AddAllJobsToSQLAgent.sql
Normal file
141
SQLAgent/01_Devl/4_Job_Maintenance/AddAllJobsToSQLAgent.sql
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
USE [msdb]
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Execute the stored procedure for each job
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX215', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX305', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGSID0', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_GSIRQ300', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSRQ202', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGSID1', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX202', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSFT202', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX432', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGACHD', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX303', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGWAGE', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGCHKS', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSESDAY', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGPAYT', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSDX145', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX629', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX630', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSFRAUD', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSRACHD', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBXACH', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBXREG', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX430', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX626', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX530', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBXREL', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX450', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX451', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSPACHD', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSPX148', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSRQ325', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX427', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSPDAY1', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSW4WGE', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGSID2', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSGSID9', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSMIN01', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSMIN02', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSRQ459', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBXPFL', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DESBD427', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX403', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBE405', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX405', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSRQ335', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX601', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSGSID0', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSGSID1', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSBX202', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSFT202', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSBX470', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSBXREJ', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSPDAY7', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSBX122', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSRQ511', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSRQ444', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_WEEKLY_DTSRQ126', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSRQ414', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSPMON1', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSCHGVB', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSCHGVR', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSVBKUP', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSVRSTR', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSRQ442', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSBX460', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSRQ513', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_MONTHLY_DTSCHGDC', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ119', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ902', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSBX500', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ417', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ320', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ713', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSBX468', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSCHGQ1', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSCHGQ2', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ327', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ328', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ412', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ793', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSWGE06', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSCHGRT', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSCHRGS', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ540', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRQ591', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSRTCHG', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DTSWGE01', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_QUARTERLY_DESBD426', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSACH01', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSBX415', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSBX452', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSBX453', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ120', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ123', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ125', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ305', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ306', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ308', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ311', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ410', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ411', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ423', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ426', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ429', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ439', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ602', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ606', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ607', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ609', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ611', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ612', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ717', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ718', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ720', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRQ721', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT715', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT716', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT717', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT718', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT719', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT720', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT722', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_ONDEMAND_DTSRT723', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ722', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ451', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ127', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ321', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ455', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ500', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ517', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ518', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ616', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ701', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ702', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ704', @Env = 'DEVL';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_YEARLY_DTSRQ910', @Env = 'DEVL';
|
||||||
|
GO
|
||||||
@ -0,0 +1 @@
|
|||||||
|
EXEC msdb.dbo.usp_CreateDailyJobSchedule @Env = 'DEVL';
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
USE [msdb]
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Create a job in SQL Agent (With Standard 3 steps approach)
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX215', @Env = 'DEVL';
|
||||||
@ -0,0 +1 @@
|
|||||||
|
EXEC msdb.dbo.usp_CreateWeeklySchedules @Env = 'DEVL';
|
||||||
@ -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
|
||||||
12
SQLAgent/01_Devl/4_Job_Maintenance/DeactivateJob.sql
Normal file
12
SQLAgent/01_Devl/4_Job_Maintenance/DeactivateJob.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
|
||||||
|
UPDATE dbo.JobControl
|
||||||
|
SET IsActive = 0
|
||||||
|
WHERE Frequency = 'MONTHLY';
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Optional: Verify changes
|
||||||
|
SELECT JobName, Frequency, IsActive
|
||||||
|
FROM dbo.JobControl
|
||||||
|
WHERE Frequency = 'MONTHLY';
|
||||||
27
SQLAgent/01_Devl/4_Job_Maintenance/DeleteSchedule.sql
Normal file
27
SQLAgent/01_Devl/4_Job_Maintenance/DeleteSchedule.sql
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @EnvPrefix NVARCHAR(50) = N'DEVL'; -- <<< 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
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
-- If you know both the job name and schedule name
|
||||||
|
DECLARE @JobName NVARCHAR(100) = 'DEVL_MONTHLY_DTSCHGDC';
|
||||||
|
DECLARE @ScheduleName NVARCHAR(200) = 'DEVL_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;
|
||||||
16
SQLAgent/01_Devl/4_Job_Maintenance/ForceCompleteJob.sql
Normal file
16
SQLAgent/01_Devl/4_Job_Maintenance/ForceCompleteJob.sql
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- 1. Check today's job status
|
||||||
|
SELECT JobName, Status, ErrorMessage
|
||||||
|
FROM dbo.JobExecutionHistory
|
||||||
|
WHERE RunDate = CAST(GETDATE() AS DATE)
|
||||||
|
AND JobName = 'DEVL_WEEKLY_DTSGSID1';
|
||||||
|
|
||||||
|
-- 2. Mark DTSBX305 as manually overridden
|
||||||
|
EXEC dbo.usp_ForceComplete 'DEVL_WEEKLY_DTSGSID1', 'Neeraj.Kumar';
|
||||||
|
|
||||||
|
-- 3. Verify the override
|
||||||
|
SELECT JobName, Status, OverrideBy, OverrideDate
|
||||||
|
FROM dbo.JobExecutionHistory
|
||||||
|
WHERE JobName = 'DEVL_WEEKLY_DTSGSID1' AND RunDate = CAST(GETDATE() AS DATE);
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
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
|
||||||
47
SQLAgent/01_Devl/4_Job_Maintenance/JobInfo.sql
Normal file
47
SQLAgent/01_Devl/4_Job_Maintenance/JobInfo.sql
Normal 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 DevlDUTASJobSchedule.dbo.JobControl
|
||||||
|
WHERE IsActive = 1
|
||||||
|
ORDER BY Frequency, ScheduledStartTime;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- View all inactive jobs
|
||||||
|
SELECT JobName, Frequency, ScheduledStartTime
|
||||||
|
FROM DevlDUTASJobSchedule.dbo.JobControl
|
||||||
|
WHERE IsActive = 0
|
||||||
|
ORDER BY Frequency;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Find weekly/monthly jobs
|
||||||
|
SELECT JobName, Frequency, ScheduledStartTime
|
||||||
|
FROM DevlDUTASJobSchedule.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) = 'DEVL_MONTHLY_DTSCHGVR';
|
||||||
|
SELECT JobName, PredecessorJobName
|
||||||
|
FROM DevlDUTASJobSchedule.dbo.JobDependencies
|
||||||
|
WHERE JobName = @Job;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Show dependency chain overview
|
||||||
|
SELECT d.JobName, d.PredecessorJobName, jc.ScheduledStartTime, jc.Frequency
|
||||||
|
FROM DevlDUTASJobSchedule.dbo.JobDependencies d
|
||||||
|
JOIN DevlDUTASJobSchedule.dbo.JobControl jc ON d.JobName = jc.JobName
|
||||||
|
ORDER BY jc.Frequency, jc.ScheduledStartTime;
|
||||||
|
GO
|
||||||
42
SQLAgent/01_Devl/4_Job_Maintenance/SQLAgentInfo.sql
Normal file
42
SQLAgent/01_Devl/4_Job_Maintenance/SQLAgentInfo.sql
Normal 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
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
EXEC dbo.usp_ScheduleJobsForMonth;
|
||||||
21
SQLAgent/01_Devl/4_Job_Maintenance/TodaysExecution.sql
Normal file
21
SQLAgent/01_Devl/4_Job_Maintenance/TodaysExecution.sql
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
USE DevlDUTASJobSchedule;
|
||||||
|
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;
|
||||||
9
SQLAgent/01_Devl/4_Job_Maintenance/TriggerMissedJob.sql
Normal file
9
SQLAgent/01_Devl/4_Job_Maintenance/TriggerMissedJob.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
USE [DevlDUTASJobSchedule]
|
||||||
|
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;
|
||||||
|
|
||||||
102
SQLAgent/01_Devl/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
102
SQLAgent/01_Devl/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$JobName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[ValidateSet('DEVL', 'TEST', 'PROD')]
|
||||||
|
[string]$Env
|
||||||
|
)
|
||||||
|
|
||||||
|
try {
|
||||||
|
Write-Host "Starting job $JobName in environment $Env at $(Get-Date)"
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Extract JCL from JobName (ENV_FREQUENCY_JOB pattern)
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
$JCL = $JobName -replace '^[A-Z]+_[A-Z]+_', ''
|
||||||
|
Write-Host "Extracted JCL: $JCL from JobName: $JobName" -ForegroundColor Yellow
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Environment-specific configuration
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
switch ($Env.ToUpper()) {
|
||||||
|
'DEVL' {
|
||||||
|
$ComputerName = '10.57.110.120'
|
||||||
|
$DatabaseName = 'DevlDUTASJobSchedule'
|
||||||
|
}
|
||||||
|
'TEST' {
|
||||||
|
$ComputerName = '10.57.110.141'
|
||||||
|
$DatabaseName = 'TestDUTASJobSchedule'
|
||||||
|
}
|
||||||
|
'PROD' {
|
||||||
|
$ComputerName = '10.57.111.125'
|
||||||
|
$DatabaseName = 'ProdDUTASJobSchedule'
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
throw "Invalid environment specified: $Env"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Remote credentials
|
||||||
|
# (recommend moving credentials to secure vault for production)
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
$username = "DUTASSQLAdminP@does.dcgov.priv"
|
||||||
|
$password = "4ho@3Pr&Xof8" | ConvertTo-SecureString -AsPlainText -Force
|
||||||
|
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Execute job remotely using the extracted JCL
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
Write-Host "Connecting to remote server $ComputerName ..."
|
||||||
|
$exitCode = Invoke-Command -ComputerName $ComputerName `
|
||||||
|
-Credential $credential `
|
||||||
|
-Authentication CredSSP `
|
||||||
|
-SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck) `
|
||||||
|
-ArgumentList $JobName, $JCL, $Env `
|
||||||
|
-ScriptBlock {
|
||||||
|
param($JobName, $JCL, $Env)
|
||||||
|
|
||||||
|
Write-Host "Remote execution - JobName: $JobName, JCL: $JCL, Env: $Env"
|
||||||
|
|
||||||
|
$process = Start-Process -FilePath "powershell.exe" `
|
||||||
|
-ArgumentList "-ExecutionPolicy Bypass -File `"E:\PSScript\RCSubmit-Job.ps1`" -JobName `"$JCL`" -Env `"$Env`"" `
|
||||||
|
-NoNewWindow -Wait -PassThru
|
||||||
|
return $process.ExitCode
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($exitCode -eq 0) {
|
||||||
|
Write-Host "Job $JobName (JCL: $JCL) completed successfully at $(Get-Date)" -ForegroundColor Green
|
||||||
|
} else {
|
||||||
|
Write-Error "Job $JobName (JCL: $JCL) failed with exit code: $exitCode"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Error "Job $JobName failed with error: $($_.Exception.Message)"
|
||||||
|
$exitCode = 1
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Log exit code to the appropriate database
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
try {
|
||||||
|
$connectionString = "Server=localhost;Database=$DatabaseName;Trusted_Connection=true;"
|
||||||
|
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
|
||||||
|
$connection.Open()
|
||||||
|
|
||||||
|
$command = $connection.CreateCommand()
|
||||||
|
$command.CommandText = @"
|
||||||
|
INSERT INTO dbo.JobExitCodes (JobName, RunDate, ExitCode, RecordedTime)
|
||||||
|
VALUES ('$JobName', CAST(GETDATE() AS DATE), $exitCode, GETDATE());
|
||||||
|
"@
|
||||||
|
$command.ExecuteNonQuery()
|
||||||
|
$connection.Close()
|
||||||
|
Write-Host "Exit code $exitCode logged to database $DatabaseName for job $JobName"
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
$errorMsg = $_.Exception.Message
|
||||||
|
Write-Host "Failed to log exit code to database $DatabaseName`: $errorMsg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exit $exitCode
|
||||||
108
SQLAgent/01_Devl/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
108
SQLAgent/01_Devl/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
param(
|
||||||
|
[string]$JobName,
|
||||||
|
[string]$Env
|
||||||
|
)
|
||||||
|
|
||||||
|
# --- Parameter Validation ---
|
||||||
|
if (-not $JobName) {
|
||||||
|
Write-Host "JobName parameter is required" -ForegroundColor Red
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
if (-not $Env) {
|
||||||
|
Write-Host "Environment (Env) parameter is required" -ForegroundColor Red
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Execute Job ---
|
||||||
|
Write-Host "Submitting job: $JobName in environment: $Env" -ForegroundColor Cyan
|
||||||
|
$output = & "$env:rcbin\submit.exe" -DSN="DOESTAX.$Env.JOBS.BATCH.LIB($JobName)"
|
||||||
|
$exitCode = [int]$LASTEXITCODE
|
||||||
|
$isSuccess = 0
|
||||||
|
|
||||||
|
# --- Parse SYSLOG Path ---
|
||||||
|
$syslogPath = $null
|
||||||
|
$syslogFolder = "Not found"
|
||||||
|
$content = @()
|
||||||
|
$summary = @()
|
||||||
|
|
||||||
|
try {
|
||||||
|
$syslogPath = $output | Select-String -Pattern "SYSLOG=\[(.*)\]" | ForEach-Object { $_.Matches.Groups[1].Value }
|
||||||
|
|
||||||
|
if ($syslogPath -and (Test-Path $syslogPath)) {
|
||||||
|
$syslogFolder = Split-Path $syslogPath -Parent
|
||||||
|
$content = Get-Content $syslogPath -ErrorAction Stop
|
||||||
|
$summary = $content | Select-String -Pattern "%Job Overall Stats:" -Context 0,7 | ForEach-Object {
|
||||||
|
$_.Context.PostContext | Select-Object -Skip 1 -First 5
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Host "SYSLOG path not found or inaccessible: $syslogPath" -ForegroundColor Yellow
|
||||||
|
$summary = @("SYSLOG file not found in output", "Raw output:", $output -join "`n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Error processing SYSLOG: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||||
|
$summary = @("Error reading SYSLOG: $($_.Exception.Message)", "Raw output:", $output -join "`n")
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Evaluate Return Codes ---
|
||||||
|
$successConditions = @(
|
||||||
|
{ $JobName -eq "GSIRQ300" -and $exitCode -eq 50 },
|
||||||
|
{ $JobName -eq "DTSGWAGE" -and $exitCode -eq 8 },
|
||||||
|
{ $JobName -eq "DTSGCHKS" -and $exitCode -eq 8 },
|
||||||
|
{ $JobName -eq "DTSGPAYT" -and $exitCode -eq 8 },
|
||||||
|
{ $JobName -eq "DTSBXACH" -and $exitCode -eq 2 },
|
||||||
|
{ $JobName -eq "DTSBXREL" -and $exitCode -eq 2 },
|
||||||
|
{ $JobName -eq "DTSMIN02" -and $exitCode -eq 4 },
|
||||||
|
{ $JobName -eq "DTSBE405" -and $exitCode -eq 910 },
|
||||||
|
{ $JobName -eq "DTSBXREJ" -and $exitCode -eq 4 },
|
||||||
|
{ $JobName -eq "DTSRQ444" -and $exitCode -eq 4 },
|
||||||
|
{ $exitCode -eq 0 }
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($successConditions | Where-Object { & $_ }) {
|
||||||
|
Write-Host "Job $JobName succeeded with code $exitCode" -ForegroundColor Green
|
||||||
|
$isSuccess = 0
|
||||||
|
} else {
|
||||||
|
Write-Host "Job $JobName failed with code $exitCode" -ForegroundColor Red
|
||||||
|
$isSuccess = 1
|
||||||
|
# Only use error if we don't have a proper summary
|
||||||
|
if ($summary.Count -eq 0) {
|
||||||
|
$summary = @($Error[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Email Notification ---
|
||||||
|
$smtpServer = "smtp4.dc.gov"
|
||||||
|
$fromEmail = "Dutas@dc.gov"
|
||||||
|
$toEmail = "zarath.lalputan@dc.gov"
|
||||||
|
$ccEmail = @("srujani.chandragiri@dc.gov")
|
||||||
|
|
||||||
|
$emailBody = @"
|
||||||
|
<pre style='font-family: Courier, monospace;'>
|
||||||
|
DUTAS Batch Job: $JobName Execution Report
|
||||||
|
==========================================
|
||||||
|
$($summary -join "`n")
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
Return Code: $exitCode
|
||||||
|
Status: $(if ($isSuccess -eq 0) { "SUCCESS" } else { "FAILED" })
|
||||||
|
JOBLOG Path: $syslogFolder
|
||||||
|
</pre>
|
||||||
|
"@
|
||||||
|
|
||||||
|
try {
|
||||||
|
Send-MailMessage -SmtpServer $smtpServer -Port 25 `
|
||||||
|
-From $fromEmail -To $toEmail -Cc $ccEmail `
|
||||||
|
-Subject "DUTAS-[$Env] Job Status: $JobName - $(if ($isSuccess -eq 0) { 'SUCCESS' } else { 'FAILED' })" `
|
||||||
|
-Body $emailBody -BodyAsHtml
|
||||||
|
Write-Host "Email sent successfully to $toEmail" -ForegroundColor Cyan
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Failed to send email: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`n---------------------------------------------"
|
||||||
|
Write-Host "Job: $JobName | ExitCode: $exitCode | Status: $(if ($isSuccess -eq 0) { 'SUCCESS' } else { 'FAILED' })"
|
||||||
|
Write-Host "---------------------------------------------`n"
|
||||||
|
|
||||||
|
exit $isSuccess
|
||||||
BIN
SQLAgent/01_Devl/6_Backup_Restore/Backup-Restore-Guide.docx
Normal file
BIN
SQLAgent/01_Devl/6_Backup_Restore/Backup-Restore-Guide.docx
Normal file
Binary file not shown.
48
SQLAgent/01_Devl/6_Backup_Restore/Backup-SQLAgent.ps1
Normal file
48
SQLAgent/01_Devl/6_Backup_Restore/Backup-SQLAgent.ps1
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# ===================================================================
|
||||||
|
# SQL Agent Jobs Backup Script (PowerShell)
|
||||||
|
# Modern Version using SqlServer module
|
||||||
|
# & "E:\Neeraj\SqlAgent\v2\01_Devl\6_Backup\Backup-SQLAgent.ps1" `
|
||||||
|
# -ServerName "DOES-DUTAS-SQL1" `
|
||||||
|
# -BackupPath "\\DOES-RAINVM-DEV\E$\Neeraj\SqlAgent\Backup\"
|
||||||
|
#
|
||||||
|
# ===================================================================
|
||||||
|
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$ServerName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$BackupPath
|
||||||
|
)
|
||||||
|
|
||||||
|
# Load SQL Server PowerShell module
|
||||||
|
Import-Module SqlServer -ErrorAction Stop
|
||||||
|
|
||||||
|
# Create timestamp and output paths
|
||||||
|
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
|
||||||
|
$ZipFile = Join-Path $BackupPath "SQLAgentJobs_$Timestamp.zip"
|
||||||
|
|
||||||
|
# Ensure backup folder exists
|
||||||
|
if (-not (Test-Path $BackupPath)) {
|
||||||
|
New-Item -ItemType Directory -Path $BackupPath | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Connect to SQL Server
|
||||||
|
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $ServerName
|
||||||
|
|
||||||
|
# Export all jobs as individual SQL scripts
|
||||||
|
$JobFiles = @()
|
||||||
|
foreach ($job in $server.JobServer.Jobs) {
|
||||||
|
$SafeJobName = ($job.Name -replace '[\\/:*?"<>|]', '_')
|
||||||
|
$FileName = Join-Path $BackupPath "$SafeJobName`_$Timestamp.sql"
|
||||||
|
$job.Script() | Out-File -FilePath $FileName -Encoding UTF8
|
||||||
|
$JobFiles += $FileName
|
||||||
|
}
|
||||||
|
|
||||||
|
# Compress all SQL files into a single ZIP
|
||||||
|
Compress-Archive -Path $JobFiles -DestinationPath $ZipFile -Force
|
||||||
|
|
||||||
|
# Optional: clean up individual .sql files
|
||||||
|
# Remove-Item -Path $JobFiles
|
||||||
|
|
||||||
|
Write-Host "SQL Agent jobs backup complete: $ZipFile" -ForegroundColor Green
|
||||||
19
SQLAgent/01_Devl/6_Backup_Restore/BackupDB.sql
Normal file
19
SQLAgent/01_Devl/6_Backup_Restore/BackupDB.sql
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
USE master;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @SrcDB NVARCHAR(128) = 'DevlDUTASJobSchedule';
|
||||||
|
DECLARE @BackupPath NVARCHAR(260) = '\\DOES-RAINVM-DEV\E$\Neeraj\SqlAgent\Backup\' + @SrcDB + '.bak';
|
||||||
|
DECLARE @SQL NVARCHAR(MAX);
|
||||||
|
|
||||||
|
-- Dynamic SQL for backup
|
||||||
|
SET @SQL = '
|
||||||
|
BACKUP DATABASE [' + @SrcDB + ']
|
||||||
|
TO DISK = N''' + @BackupPath + '''
|
||||||
|
WITH INIT, COMPRESSION, STATS = 10;
|
||||||
|
';
|
||||||
|
|
||||||
|
-- Execute backup
|
||||||
|
EXEC(@SQL);
|
||||||
|
|
||||||
|
PRINT 'Backup completed: ' + @BackupPath;
|
||||||
|
GO
|
||||||
45
SQLAgent/01_Devl/6_Backup_Restore/Cleanup-SQLAgent.ps1
Normal file
45
SQLAgent/01_Devl/6_Backup_Restore/Cleanup-SQLAgent.ps1
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Deletes SQL Agent jobs whose names start with a given environment prefix (e.g., DEVL, TEST, PROD).
|
||||||
|
|
||||||
|
.PARAMETER ServerName
|
||||||
|
SQL Server instance name (use FCI virtual name if clustered).
|
||||||
|
|
||||||
|
.PARAMETER Env
|
||||||
|
Environment prefix for job deletion (e.g., DEVL, TEST, PROD).
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
.\Cleanup-SQLAgent.ps1 -ServerName "DOES-DUTAS-SQL1" -Env "DEVL"
|
||||||
|
#>
|
||||||
|
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$ServerName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$Environment
|
||||||
|
)
|
||||||
|
|
||||||
|
# Load SQL Server module
|
||||||
|
Import-Module SqlServer -ErrorAction Stop
|
||||||
|
|
||||||
|
# Connect to SQL Server
|
||||||
|
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $ServerName
|
||||||
|
|
||||||
|
# Create log file path (same folder as script)
|
||||||
|
$ScriptRoot = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||||
|
$LogPath = Join-Path $ScriptRoot "CleanupSQLAgent_$($Environment)_$(Get-Date -Format 'yyyyMMdd_HHmmss').log"
|
||||||
|
|
||||||
|
"=== SQL Agent Cleanup Started for $Environment : $(Get-Date) ===" | Out-File $LogPath -Encoding UTF8
|
||||||
|
|
||||||
|
# Take a snapshot of all jobs first (avoids collection modification issue)
|
||||||
|
$jobsToDelete = @($server.JobServer.Jobs | Where-Object { $_.Name -like "$Environment*" })
|
||||||
|
|
||||||
|
foreach ($job in $jobsToDelete) {
|
||||||
|
Write-Host "Deleting job: $($job.Name)" -ForegroundColor Yellow
|
||||||
|
"Deleting job: $($job.Name)" | Out-File $LogPath -Append -Encoding UTF8
|
||||||
|
$job.Drop()
|
||||||
|
}
|
||||||
|
|
||||||
|
"=== Cleanup Complete for $Environment : $(Get-Date) ===" | Out-File $LogPath -Append -Encoding UTF8
|
||||||
|
Write-Host "All $Environment SQL Agent jobs deleted successfully." -ForegroundColor Green
|
||||||
27
SQLAgent/01_Devl/6_Backup_Restore/CleanupSQLAgent.sql
Normal file
27
SQLAgent/01_Devl/6_Backup_Restore/CleanupSQLAgent.sql
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @EnvPrefix NVARCHAR(50) = N'DEVL'; -- <<< Change this to your environment prefix
|
||||||
|
DECLARE @job_id UNIQUEIDENTIFIER;
|
||||||
|
DECLARE @job_name NVARCHAR(200);
|
||||||
|
|
||||||
|
DECLARE JobCursor CURSOR FOR
|
||||||
|
SELECT job_id, name
|
||||||
|
FROM msdb.dbo.sysjobs
|
||||||
|
WHERE name LIKE @EnvPrefix + '%'; -- Only jobs starting with the given prefix
|
||||||
|
|
||||||
|
OPEN JobCursor;
|
||||||
|
FETCH NEXT FROM JobCursor INTO @job_id, @job_name;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Deleting job: ' + @job_name;
|
||||||
|
EXEC msdb.dbo.sp_delete_job @job_id = @job_id;
|
||||||
|
FETCH NEXT FROM JobCursor INTO @job_id, @job_name;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE JobCursor;
|
||||||
|
DEALLOCATE JobCursor;
|
||||||
|
|
||||||
|
PRINT 'All SQL Agent jobs starting with prefix ' + @EnvPrefix + ' deleted successfully.';
|
||||||
|
GO
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
$BackupZip = "\\DOES-RAINVM-DEV\E$\Neeraj\SqlAgent\Backup\SQLAgentJobs_20251018_153000.zip"
|
||||||
|
$ExtractPath = "\\DOES-RAINVM-DEV\E$\Neeraj\SqlAgent\Restore\"
|
||||||
|
|
||||||
|
# Create folder if not exist
|
||||||
|
if (-not (Test-Path $ExtractPath)) { New-Item -ItemType Directory -Path $ExtractPath | Out-Null }
|
||||||
|
|
||||||
|
# Extract the ZIP
|
||||||
|
Expand-Archive -Path $BackupZip -DestinationPath $ExtractPath -Force
|
||||||
31
SQLAgent/01_Devl/6_Backup_Restore/RestoreDB.sql
Normal file
31
SQLAgent/01_Devl/6_Backup_Restore/RestoreDB.sql
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
USE master;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @SrcDB NVARCHAR(128) = 'DevlDUTASJobSchedule'; -- original database
|
||||||
|
DECLARE @NewDB NVARCHAR(128) = 'DevlDUTASJobSchedule'; -- database name to restore as
|
||||||
|
DECLARE @BackupPath NVARCHAR(260) = '\\DOES-RAINVM-DEV\E$\Neeraj\SqlAgent\Backup\' + @SrcDB + '.bak';
|
||||||
|
DECLARE @SQL NVARCHAR(MAX);
|
||||||
|
|
||||||
|
-- Optional: check logical file names inside backup
|
||||||
|
-- RESTORE FILELISTONLY FROM DISK = @BackupPath;
|
||||||
|
|
||||||
|
-- Dynamic SQL for restore
|
||||||
|
SET @SQL = '
|
||||||
|
-- Optional: disconnect active connections
|
||||||
|
ALTER DATABASE [' + @NewDB + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
RESTORE DATABASE [' + @NewDB + ']
|
||||||
|
FROM DISK = N''' + @BackupPath + '''
|
||||||
|
WITH MOVE N''' + @SrcDB + ''' TO N''\\DOES-RAINVM-DEV\E$\SQLData\' + @NewDB + '.mdf'',
|
||||||
|
MOVE N''' + @SrcDB + '_log'' TO N''\\DOES-RAINVM-DEV\E$\SQLLogs\' + @NewDB + '_log.ldf'',
|
||||||
|
REPLACE, STATS = 10;
|
||||||
|
|
||||||
|
-- Set database back to multi-user
|
||||||
|
ALTER DATABASE [' + @NewDB + '] SET MULTI_USER;
|
||||||
|
';
|
||||||
|
|
||||||
|
-- Execute restore
|
||||||
|
EXEC(@SQL);
|
||||||
|
|
||||||
|
PRINT 'Database restored successfully as ' + @NewDB;
|
||||||
|
GO
|
||||||
12
SQLAgent/01_Devl/6_Backup_Restore/RestoreSQLAgent.sql
Normal file
12
SQLAgent/01_Devl/6_Backup_Restore/RestoreSQLAgent.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Connect to SQL Server
|
||||||
|
$ServerName = "DOES-DUTAS-SQL1"
|
||||||
|
$SqlInstance = "localhost" # or server instance name
|
||||||
|
|
||||||
|
# Execute each script
|
||||||
|
$ScriptFiles = Get-ChildItem -Path $ExtractPath -Filter *.sql
|
||||||
|
foreach ($file in $ScriptFiles) {
|
||||||
|
Write-Host "Restoring job from: $($file.FullName)"
|
||||||
|
sqlcmd -S $SqlInstance -i $file.FullName
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "All SQL Agent jobs restored successfully."
|
||||||
@ -6,14 +6,20 @@ USE TestDUTASJobSchedule;
|
|||||||
GO
|
GO
|
||||||
|
|
||||||
-- Create the main control table
|
-- Create the main control table
|
||||||
CREATE TABLE dbo.JobControl (
|
CREATE TABLE dbo.JobControl
|
||||||
JobID INT IDENTITY(1,1) PRIMARY KEY,
|
(
|
||||||
JobName VARCHAR(50) NOT NULL UNIQUE,
|
JobID INT IDENTITY(1,1) NOT NULL,
|
||||||
ScheduledStartTime TIME NOT NULL,
|
JobName VARCHAR(50) NOT NULL,
|
||||||
SchedulerAction VARCHAR(10) NOT NULL CHECK (SchedulerAction IN ('CONTINUE', 'STOP')),
|
ScheduledStartTime TIME(7) NOT NULL,
|
||||||
IsActive BIT DEFAULT 1,
|
SchedulerAction VARCHAR(10) NOT NULL, -- STOP or CONTINUE
|
||||||
CreatedDate DATETIME DEFAULT GETDATE(),
|
IsActive BIT NOT NULL CONSTRAINT DF_JobControl_IsActive DEFAULT (1),
|
||||||
Frequency VARCHAR(20) NOT NULL
|
CreatedDate DATETIME NOT NULL CONSTRAINT DF_JobControl_CreatedDate DEFAULT (GETDATE()),
|
||||||
|
Frequency CHAR(20) NOT NULL CONSTRAINT DF_JobControl_Frequency DEFAULT ('DAILY'),
|
||||||
|
FrequencyPattern NVARCHAR(500) NULL, -- JSON scheduling rule
|
||||||
|
|
||||||
|
CONSTRAINT PK_JobControl PRIMARY KEY CLUSTERED (JobID ASC),
|
||||||
|
CONSTRAINT UQ_JobControl_JobName UNIQUE NONCLUSTERED (JobName ASC),
|
||||||
|
CONSTRAINT CK_JobControl_SchedulerAction CHECK (SchedulerAction IN ('STOP', 'CONTINUE'))
|
||||||
);
|
);
|
||||||
GO
|
GO
|
||||||
|
|
||||||
@ -61,3 +67,17 @@ CREATE TABLE dbo.JobExitCodes
|
|||||||
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
||||||
);
|
);
|
||||||
GO
|
GO
|
||||||
|
-- Create JobSchedule table
|
||||||
|
CREATE TABLE dbo.JobSchedule (
|
||||||
|
JobScheduleID INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
|
JobName VARCHAR(100) NOT NULL,
|
||||||
|
Frequency VARCHAR(20) CHECK (Frequency IN ('Monthly','Quarterly')),
|
||||||
|
ScheduledRule NVARCHAR(500) NULL, -- Copy of JSON or rule text from JobControl
|
||||||
|
ScheduledDate DATE NOT NULL, -- Planned date (before adjustment)
|
||||||
|
AdjustedRunDate DATE NOT NULL, -- Final working-day adjusted date
|
||||||
|
MonthOfSchedule CHAR(7) NOT NULL, -- 'YYYY-MM'
|
||||||
|
YearOfSchedule INT NOT NULL,
|
||||||
|
CreatedOn DATETIME DEFAULT GETDATE(),
|
||||||
|
CreatedBy VARCHAR(50) DEFAULT SUSER_SNAME()
|
||||||
|
);
|
||||||
|
GO
|
||||||
@ -1,34 +1,29 @@
|
|||||||
USE TestDUTASJobSchedule;
|
USE [TestDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[FederalHolidays] ON
|
||||||
-- Clear existing data and insert 2025-2026 holidays (ignoring 0000000000 dates)
|
GO
|
||||||
INSERT INTO dbo.FederalHolidays (HolidayDate, HolidayName, Year) VALUES
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (1, CAST(N'2025-01-01' AS Date), N'New Years Day', 2025)
|
||||||
-- 2025 Holidays
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (2, CAST(N'2025-01-20' AS Date), N'Martin Luther King Day', 2025)
|
||||||
('2025-01-01', 'New Years Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (3, CAST(N'2025-02-17' AS Date), N'Presidents Day', 2025)
|
||||||
('2025-01-20', 'Martin Luther King Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (4, CAST(N'2025-05-26' AS Date), N'Memorial Day', 2025)
|
||||||
('2025-02-17', 'Presidents Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (5, CAST(N'2025-06-19' AS Date), N'Juneteenth Day', 2025)
|
||||||
('2025-05-26', 'Memorial Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (6, CAST(N'2025-07-04' AS Date), N'Independence Day', 2025)
|
||||||
('2025-06-19', 'Juneteenth Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (7, CAST(N'2025-09-01' AS Date), N'Labor Day', 2025)
|
||||||
('2025-07-04', 'Independence Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (8, CAST(N'2025-10-13' AS Date), N'Columbus Day', 2025)
|
||||||
('2025-09-01', 'Labor Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (9, CAST(N'2025-11-11' AS Date), N'Veterans Day', 2025)
|
||||||
('2025-10-13', 'Columbus Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (10, CAST(N'2025-11-27' AS Date), N'Thanksgiving Day', 2025)
|
||||||
('2025-11-11', 'Veterans Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (11, CAST(N'2025-12-25' AS Date), N'Christmas Day', 2025)
|
||||||
('2025-11-27', 'Thanksgiving Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (12, CAST(N'2026-01-01' AS Date), N'New Years Day', 2026)
|
||||||
('2025-12-25', 'Christmas Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (13, CAST(N'2026-01-19' AS Date), N'Martin Luther King Day', 2026)
|
||||||
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (14, CAST(N'2026-02-16' AS Date), N'Presidents Day', 2026)
|
||||||
-- 2026 Holidays
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (15, CAST(N'2026-05-25' AS Date), N'Memorial Day', 2026)
|
||||||
('2026-01-01', 'New Years Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (16, CAST(N'2026-06-19' AS Date), N'Juneteenth Day', 2026)
|
||||||
('2026-01-19', 'Martin Luther King Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (17, CAST(N'2026-07-03' AS Date), N'Independence Day', 2026)
|
||||||
('2026-02-16', 'Presidents Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (18, CAST(N'2026-09-07' AS Date), N'Labor Day', 2026)
|
||||||
('2026-05-25', 'Memorial Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (19, CAST(N'2026-10-12' AS Date), N'Columbus Day', 2026)
|
||||||
('2026-06-19', 'Juneteenth Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (20, CAST(N'2026-11-11' AS Date), N'Veterans Day', 2026)
|
||||||
('2026-07-03', 'Independence Day', 2026), -- Note: July 3rd observed since July 4th is Saturday
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (21, CAST(N'2026-11-26' AS Date), N'Thanksgiving Day', 2026)
|
||||||
('2026-09-07', 'Labor Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (22, CAST(N'2026-12-25' AS Date), N'Christmas Day', 2026)
|
||||||
('2026-10-12', 'Columbus Day', 2026),
|
GO
|
||||||
('2026-11-11', 'Veterans Day', 2026),
|
SET IDENTITY_INSERT [dbo].[FederalHolidays] OFF
|
||||||
('2026-11-26', 'Thanksgiving Day', 2026),
|
|
||||||
('2026-12-25', 'Christmas Day', 2026);
|
|
||||||
GO
|
GO
|
||||||
|
|
||||||
-- Verify the data
|
|
||||||
SELECT * FROM dbo.FederalHolidays ORDER BY HolidayDate;
|
|
||||||
@ -1,79 +1,143 @@
|
|||||||
USE [TestDUTASJobSchedule]
|
USE [TestDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobControl] ON
|
||||||
INSERT INTO [dbo].[JobControl] (
|
GO
|
||||||
[JobName],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (1, N'TEST_DAILY_DTSBX215', CAST(N'04:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[ScheduledStartTime],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (2, N'TEST_DAILY_DTSBX305', CAST(N'04:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[SchedulerAction],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (3, N'TEST_DAILY_DTSGSID0', CAST(N'06:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[IsActive],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (4, N'TEST_DAILY_GSIRQ300', CAST(N'06:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[CreatedDate],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (5, N'TEST_DAILY_DTSRQ202', CAST(N'06:10:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[Frequency]
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (6, N'TEST_DAILY_DTSGSID1', CAST(N'06:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
)
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (7, N'TEST_DAILY_DTSBX202', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
VALUES
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (8, N'TEST_DAILY_DTSFT202', CAST(N'08:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX215', '4:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (9, N'TEST_DAILY_DTSBX432', CAST(N'08:30:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX305', '4:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (10, N'TEST_DAILY_DTSGACHD', CAST(N'09:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGSID0', '6:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (11, N'TEST_DAILY_DTSBX303', CAST(N'10:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_GSIRQ300', '6:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (12, N'TEST_DAILY_DTSGWAGE', CAST(N'14:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSRQ202', '6:10:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (13, N'TEST_DAILY_DTSGCHKS', CAST(N'14:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGSID1', '6:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (14, N'TEST_DAILY_DTSESDAY', CAST(N'14:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX202', '7:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (15, N'TEST_DAILY_DTSGPAYT', CAST(N'14:10:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSFT202', '8:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (16, N'TEST_DAILY_DTSDX145', CAST(N'16:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX432', '8:30:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (17, N'TEST_DAILY_DTSBX629', CAST(N'16:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGACHD', '9:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (18, N'TEST_DAILY_DTSBX630', CAST(N'16:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX303', '10:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (19, N'TEST_DAILY_DTSFRAUD', CAST(N'16:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGWAGE', '14:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (20, N'TEST_DAILY_DTSRACHD', CAST(N'17:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGCHKS', '14:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (21, N'TEST_DAILY_DTSBXACH', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSESDAY', '14:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (22, N'TEST_DAILY_DTSBXREG', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGPAYT', '14:10:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (23, N'TEST_DAILY_DTSBX430', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSDX145', '16:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (24, N'TEST_DAILY_DTSBX626', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX629', '16:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (25, N'TEST_DAILY_DTSBX530', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX630', '16:30:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (26, N'TEST_DAILY_DTSBXREL', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSFRAUD', '16:30:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (27, N'TEST_DAILY_DTSBX450', CAST(N'17:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSRACHD', '17:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (28, N'TEST_DAILY_DTSBX451', CAST(N'17:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBXACH', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (29, N'TEST_DAILY_DTSPACHD', CAST(N'18:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBXREG', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (30, N'TEST_DAILY_DTSPX148', CAST(N'18:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX430', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (31, N'TEST_DAILY_DTSRQ325', CAST(N'18:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX626', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (32, N'TEST_DAILY_DTSBX427', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX530', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (33, N'TEST_DAILY_DTSPDAY1', CAST(N'18:10:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBXREL', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (34, N'TEST_DAILY_DTSW4WGE', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX450', '17:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (35, N'TEST_DAILY_DTSGSID2', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX451', '17:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (36, N'TEST_DAILY_DTSGSID9', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSPACHD', '18:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (37, N'TEST_DAILY_DTSMIN01', CAST(N'18:20:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSPX148', '18:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (38, N'TEST_DAILY_DTSMIN02', CAST(N'18:20:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSRQ325', '18:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (39, N'TEST_DAILY_DTSRQ459', CAST(N'19:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSBX427', '18:07:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (40, N'TEST_DAILY_DTSBXPFL', CAST(N'19:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSPDAY1', '18:10:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (41, N'TEST_DAILY_DESBD427', CAST(N'19:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSW4WGE', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (42, N'TEST_DAILY_DTSBX403', CAST(N'20:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGSID2', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (43, N'TEST_DAILY_DTSBE405', CAST(N'20:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSGSID9', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (44, N'TEST_DAILY_DTSBX405', CAST(N'20:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSMIN01', '18:20:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (45, N'TEST_DAILY_DTSRQ335', CAST(N'21:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSMIN02', '18:20:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (46, N'TEST_DAILY_DTSBX601', CAST(N'21:25:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('TEST_DAILY_DTSRQ459', '19:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (47, N'TEST_WEEKLY_DTSGSID0', CAST(N'06:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('TEST_DAILY_DTSBXPFL', '19:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (48, N'TEST_WEEKLY_DTSGSID1', CAST(N'06:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('TEST_DAILY_DESBD427', '19:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (49, N'TEST_WEEKLY_DTSBX202', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('TEST_DAILY_DTSBX403', '20:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (50, N'TEST_WEEKLY_DTSFT202', CAST(N'08:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('TEST_DAILY_DTSBE405', '20:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (51, N'TEST_WEEKLY_DTSBX470', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('TEST_DAILY_DTSBX405', '20:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (52, N'TEST_WEEKLY_DTSBXREJ', CAST(N'17:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Tue","Fri"]}')
|
||||||
('TEST_DAILY_DTSRQ335', '21:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (53, N'TEST_WEEKLY_DTSPDAY7', CAST(N'19:10:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('TEST_DAILY_DTSBX601', '21:25:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (54, N'TEST_WEEKLY_DTSBX122', CAST(N'19:14:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('TEST_WEEKLY_DTSGSID0', '6:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (55, N'TEST_WEEKLY_DTSRQ511', CAST(N'19:14:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('TEST_WEEKLY_DTSGSID1', '6:15:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (56, N'TEST_WEEKLY_DTSRQ444', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Mon"]}')
|
||||||
('TEST_WEEKLY_DTSBX202', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (57, N'TEST_WEEKLY_DTSRQ126', CAST(N'09:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Mon"]}')
|
||||||
('TEST_WEEKLY_DTSFT202', '8:00:00', 'STOP', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (58, N'TEST_MONTHLY_DTSRQ414', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"FirstWorkday"}')
|
||||||
('TEST_WEEKLY_DTSBX470', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (59, N'TEST_MONTHLY_DTSPMON1', CAST(N'19:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_WEEKLY_DTSBXREJ', '17:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (60, N'TEST_MONTHLY_DTSCHGVB', CAST(N'19:26:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_WEEKLY_DTSPDAY7', '19:10:00', 'STOP', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (61, N'TEST_MONTHLY_DTSCHGVR', CAST(N'19:27:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_WEEKLY_DTSBX122', '19:14:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (62, N'TEST_MONTHLY_DTSVBKUP', CAST(N'19:26:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_WEEKLY_DTSRQ511', '19:14:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (63, N'TEST_MONTHLY_DTSVRSTR', CAST(N'19:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_WEEKLY_DTSRQ444', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (64, N'TEST_MONTHLY_DTSRQ442', CAST(N'19:37:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_WEEKLY_DTSRQ126', '9:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (65, N'TEST_MONTHLY_DTSBX460', CAST(N'19:35:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_MONTHLY_DTSRQ414', '18:15:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (66, N'TEST_MONTHLY_DTSRQ513', CAST(N'19:37:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('TEST_MONTHLY_DTSPMON1', '19:15:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (67, N'TEST_MONTHLY_DTSCHGDC', CAST(N'13:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"FirstWorkday"}')
|
||||||
('TEST_MONTHLY_DTSCHGVB', '19:26:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (68, N'TEST_QUARTERLY_DTSRQ119', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":3}')
|
||||||
('TEST_MONTHLY_DTSCHGVR', '19:27:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (69, N'TEST_QUARTERLY_DTSRQ902', CAST(N'18:16:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":1}')
|
||||||
('TEST_MONTHLY_DTSVBKUP', '19:26:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (70, N'TEST_QUARTERLY_DTSBX500', CAST(N'21:25:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":1}')
|
||||||
('TEST_MONTHLY_DTSVRSTR', '19:30:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (71, N'TEST_QUARTERLY_DTSRQ417', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":28},{"Month":5,"Day":31},{"Month":8,"Day":31},{"Month":11,"Day":30}]}')
|
||||||
('TEST_MONTHLY_DTSRQ442', '19:37:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (72, N'TEST_QUARTERLY_DTSRQ320', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":10},{"Month":5,"Day":10},{"Month":8,"Day":10},{"Month":11,"Day":10}]}')
|
||||||
('TEST_MONTHLY_DTSBX460', '19:35:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (73, N'TEST_QUARTERLY_DTSRQ713', CAST(N'00:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":3,"Day":31},{"Month":6,"Day":30},{"Month":9,"Day":30},{"Month":12,"Day":31}]}')
|
||||||
('TEST_MONTHLY_DTSRQ513', '19:37:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (74, N'TEST_QUARTERLY_DTSBX468', CAST(N'15:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":28},{"Month":5,"Day":30},{"Month":7,"Day":31},{"Month":10,"Day":30}]}')
|
||||||
('TEST_MONTHLY_DTSCHGDC', '13:00:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY');
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (75, N'TEST_QUARTERLY_DTSCHGQ1', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Rule":"FirstWorkdayOfQuarter"}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (76, N'TEST_QUARTERLY_DTSCHGQ2', CAST(N'18:16:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Rule":"FirstWorkdayOfQuarter"}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (77, N'TEST_QUARTERLY_DTSRQ327', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":7},{"Month":5,"Day":7},{"Month":8,"Day":7},{"Month":11,"Day":7}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (78, N'TEST_QUARTERLY_DTSRQ328', CAST(N'18:16:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":7},{"Month":5,"Day":7},{"Month":8,"Day":7},{"Month":11,"Day":7}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (79, N'TEST_QUARTERLY_DTSRQ412', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":1,"Day":15},{"Month":4,"Day":15},{"Month":7,"Day":15},{"Month":10,"Day":15}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (80, N'TEST_QUARTERLY_DTSRQ793', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (81, N'TEST_QUARTERLY_DTSWGE06', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (82, N'TEST_QUARTERLY_DTSCHGRT', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (83, N'TEST_QUARTERLY_DTSCHRGS', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (84, N'TEST_QUARTERLY_DTSRQ540', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (85, N'TEST_QUARTERLY_DTSRQ591', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (86, N'TEST_QUARTERLY_DTSRTCHG', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (87, N'TEST_QUARTERLY_DTSWGE01', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (88, N'TEST_QUARTERLY_DESBD426', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (89, N'TEST_ONDEMAND_DTSACH01', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (90, N'TEST_ONDEMAND_DTSBX415', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (91, N'TEST_ONDEMAND_DTSBX452', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (92, N'TEST_ONDEMAND_DTSBX453', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (93, N'TEST_ONDEMAND_DTSRQ120', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (94, N'TEST_ONDEMAND_DTSRQ123', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (95, N'TEST_ONDEMAND_DTSRQ125', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (96, N'TEST_ONDEMAND_DTSRQ305', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (97, N'TEST_ONDEMAND_DTSRQ306', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (98, N'TEST_ONDEMAND_DTSRQ308', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (99, N'TEST_ONDEMAND_DTSRQ311', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (100, N'TEST_ONDEMAND_DTSRQ410', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (101, N'TEST_ONDEMAND_DTSRQ411', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (102, N'TEST_ONDEMAND_DTSRQ423', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (103, N'TEST_ONDEMAND_DTSRQ426', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (104, N'TEST_ONDEMAND_DTSRQ429', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (105, N'TEST_ONDEMAND_DTSRQ439', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (106, N'TEST_ONDEMAND_DTSRQ602', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (107, N'TEST_ONDEMAND_DTSRQ606', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (108, N'TEST_ONDEMAND_DTSRQ607', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (109, N'TEST_ONDEMAND_DTSRQ609', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (110, N'TEST_ONDEMAND_DTSRQ611', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (111, N'TEST_ONDEMAND_DTSRQ612', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (112, N'TEST_ONDEMAND_DTSRQ717', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (113, N'TEST_ONDEMAND_DTSRQ718', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (114, N'TEST_ONDEMAND_DTSRQ720', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (115, N'TEST_ONDEMAND_DTSRQ721', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (116, N'TEST_ONDEMAND_DTSRT715', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (117, N'TEST_ONDEMAND_DTSRT716', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (118, N'TEST_ONDEMAND_DTSRT717', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (119, N'TEST_ONDEMAND_DTSRT718', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (120, N'TEST_ONDEMAND_DTSRT719', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (121, N'TEST_ONDEMAND_DTSRT720', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (122, N'TEST_ONDEMAND_DTSRT722', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (123, N'TEST_ONDEMAND_DTSRT723', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (124, N'TEST_YEARLY_DTSRQ722', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (125, N'TEST_YEARLY_DTSRQ451', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (126, N'TEST_YEARLY_DTSRQ127', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (127, N'TEST_YEARLY_DTSRQ321', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (128, N'TEST_YEARLY_DTSRQ455', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (129, N'TEST_YEARLY_DTSRQ500', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (130, N'TEST_YEARLY_DTSRQ517', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (131, N'TEST_YEARLY_DTSRQ518', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (132, N'TEST_YEARLY_DTSRQ616', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (133, N'TEST_YEARLY_DTSRQ701', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (134, N'TEST_YEARLY_DTSRQ702', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (135, N'TEST_YEARLY_DTSRQ704', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (136, N'TEST_YEARLY_DTSRQ910', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobControl] OFF
|
||||||
|
GO
|
||||||
@ -1,80 +1,92 @@
|
|||||||
USE [TestDUTASJobSchedule]
|
USE [TestDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobDependencies] ON
|
||||||
TRUNCATE TABLE [dbo].[JobDependencies];
|
GO
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (1, N'TEST_DAILY_DTSGSID0', N'TEST_DAILY_DTSBX305')
|
||||||
INSERT INTO [dbo].[JobDependencies] (
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (2, N'TEST_DAILY_GSIRQ300', N'TEST_DAILY_DTSBX305')
|
||||||
[JobName],
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (3, N'TEST_DAILY_DTSRQ202', N'TEST_DAILY_GSIRQ300')
|
||||||
[PredecessorJobName]
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (4, N'TEST_DAILY_DTSGSID1', N'TEST_DAILY_GSIRQ300')
|
||||||
)
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (5, N'TEST_DAILY_DTSBX202', N'TEST_DAILY_GSIRQ300')
|
||||||
VALUES
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (6, N'TEST_DAILY_DTSFT202', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSGSID0','TEST_DAILY_DTSBX305'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (7, N'TEST_DAILY_DTSBX432', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_GSIRQ300','TEST_DAILY_DTSBX305'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (8, N'TEST_DAILY_DTSGACHD', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSRQ202','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (9, N'TEST_DAILY_DTSBX303', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSGSID1','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (10, N'TEST_DAILY_DTSGWAGE', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSBX202','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (11, N'TEST_DAILY_DTSGCHKS', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSFT202','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (12, N'TEST_DAILY_DTSESDAY', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSBX432','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (13, N'TEST_DAILY_DTSGPAYT', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSGACHD','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (14, N'TEST_DAILY_DTSDX145', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSBX303','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (15, N'TEST_DAILY_DTSBX629', N'TEST_DAILY_GSIRQ300')
|
||||||
('TEST_DAILY_DTSGWAGE','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (16, N'TEST_DAILY_DTSBX630', N'TEST_DAILY_DTSBX629')
|
||||||
('TEST_DAILY_DTSGCHKS','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (17, N'TEST_DAILY_DTSFRAUD', N'TEST_DAILY_DTSBX629')
|
||||||
('TEST_DAILY_DTSESDAY','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (18, N'TEST_DAILY_DTSRACHD', N'TEST_DAILY_DTSFRAUD')
|
||||||
('TEST_DAILY_DTSGPAYT','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (19, N'TEST_DAILY_DTSBXACH', N'TEST_DAILY_DTSFRAUD')
|
||||||
('TEST_DAILY_DTSDX145','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (20, N'TEST_DAILY_DTSBXREG', N'TEST_DAILY_DTSFRAUD')
|
||||||
('TEST_DAILY_DTSBX629','TEST_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (21, N'TEST_DAILY_DTSBX430', N'TEST_DAILY_DTSFRAUD')
|
||||||
('TEST_DAILY_DTSBX630','TEST_DAILY_DTSBX629'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (22, N'TEST_DAILY_DTSBX626', N'TEST_DAILY_DTSFRAUD')
|
||||||
('TEST_DAILY_DTSFRAUD','TEST_DAILY_DTSBX629'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (23, N'TEST_DAILY_DTSBX530', N'TEST_DAILY_DTSFRAUD')
|
||||||
('TEST_DAILY_DTSRACHD','TEST_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (24, N'TEST_DAILY_DTSBXREL', N'TEST_DAILY_DTSFRAUD')
|
||||||
('TEST_DAILY_DTSBXACH','TEST_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (25, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBXACH')
|
||||||
('TEST_DAILY_DTSBXREG','TEST_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (26, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBXREG')
|
||||||
('TEST_DAILY_DTSBX430','TEST_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (27, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBX430')
|
||||||
('TEST_DAILY_DTSBX626','TEST_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (28, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBX626')
|
||||||
('TEST_DAILY_DTSBX530','TEST_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (29, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBX530')
|
||||||
('TEST_DAILY_DTSBXREL','TEST_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (30, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBXREL')
|
||||||
('TEST_DAILY_DTSBX450','TEST_DAILY_DTSBXACH'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (31, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBXACH')
|
||||||
('TEST_DAILY_DTSBX450','TEST_DAILY_DTSBXREG'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (32, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBXREG')
|
||||||
('TEST_DAILY_DTSBX450','TEST_DAILY_DTSBX430'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (33, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBX430')
|
||||||
('TEST_DAILY_DTSBX450','TEST_DAILY_DTSBX626'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (34, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBX626')
|
||||||
('TEST_DAILY_DTSBX450','TEST_DAILY_DTSBX530'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (35, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBX530')
|
||||||
('TEST_DAILY_DTSBX450','TEST_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (36, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBXREL')
|
||||||
('TEST_DAILY_DTSBX451','TEST_DAILY_DTSBXACH'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (37, N'TEST_DAILY_DTSPACHD', N'TEST_DAILY_DTSBX450')
|
||||||
('TEST_DAILY_DTSBX451','TEST_DAILY_DTSBXREG'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (38, N'TEST_DAILY_DTSPACHD', N'TEST_DAILY_DTSBX451')
|
||||||
('TEST_DAILY_DTSBX451','TEST_DAILY_DTSBX430'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (39, N'TEST_DAILY_DTSPX148', N'TEST_DAILY_DTSPACHD')
|
||||||
('TEST_DAILY_DTSBX451','TEST_DAILY_DTSBX626'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (40, N'TEST_DAILY_DTSRQ325', N'TEST_DAILY_DTSPACHD')
|
||||||
('TEST_DAILY_DTSBX451','TEST_DAILY_DTSBX530'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (41, N'TEST_DAILY_DTSBX427', N'TEST_DAILY_DTSPX148')
|
||||||
('TEST_DAILY_DTSBX451','TEST_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (42, N'TEST_DAILY_DTSBX427', N'TEST_DAILY_DTSRQ325')
|
||||||
('TEST_DAILY_DTSPACHD','TEST_DAILY_DTSBX450'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (43, N'TEST_DAILY_DTSPDAY1', N'TEST_DAILY_DTSBX427')
|
||||||
('TEST_DAILY_DTSPACHD','TEST_DAILY_DTSBX451'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (44, N'TEST_DAILY_DTSW4WGE', N'TEST_DAILY_DTSPDAY1')
|
||||||
('TEST_DAILY_DTSPX148','TEST_DAILY_DTSPACHD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (45, N'TEST_DAILY_DTSGSID2', N'TEST_DAILY_DTSPDAY1')
|
||||||
('TEST_DAILY_DTSRQ325','TEST_DAILY_DTSPACHD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (46, N'TEST_DAILY_DTSGSID9', N'TEST_DAILY_DTSPDAY1')
|
||||||
('TEST_DAILY_DTSBX427','TEST_DAILY_DTSPX148'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (47, N'TEST_DAILY_DTSMIN01', N'TEST_DAILY_DTSW4WGE')
|
||||||
('TEST_DAILY_DTSBX427','TEST_DAILY_DTSRQ325'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (48, N'TEST_DAILY_DTSMIN01', N'TEST_DAILY_DTSGSID2')
|
||||||
('TEST_DAILY_DTSPDAY1','TEST_DAILY_DTSBX427'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (49, N'TEST_DAILY_DTSMIN01', N'TEST_DAILY_DTSGSID9')
|
||||||
('TEST_DAILY_DTSW4WGE','TEST_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (50, N'TEST_DAILY_DTSMIN02', N'TEST_DAILY_DTSW4WGE')
|
||||||
('TEST_DAILY_DTSGSID2','TEST_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (51, N'TEST_DAILY_DTSMIN02', N'TEST_DAILY_DTSGSID2')
|
||||||
('TEST_DAILY_DTSGSID9','TEST_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (52, N'TEST_DAILY_DTSMIN02', N'TEST_DAILY_DTSGSID9')
|
||||||
('TEST_DAILY_DTSMIN01','TEST_DAILY_DTSW4WGE'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (53, N'TEST_DAILY_DTSRQ459', N'TEST_DAILY_DTSMIN01')
|
||||||
('TEST_DAILY_DTSMIN01','TEST_DAILY_DTSGSID2'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (54, N'TEST_DAILY_DTSRQ459', N'TEST_DAILY_DTSMIN02')
|
||||||
('TEST_DAILY_DTSMIN01','TEST_DAILY_DTSGSID9'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (55, N'TEST_DAILY_DTSBXPFL', N'TEST_DAILY_DTSRQ459')
|
||||||
('TEST_DAILY_DTSMIN02','TEST_DAILY_DTSW4WGE'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (56, N'TEST_DAILY_DESBD427', N'TEST_DAILY_DTSBXPFL')
|
||||||
('TEST_DAILY_DTSMIN02','TEST_DAILY_DTSGSID2'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (57, N'TEST_DAILY_DTSBX403', N'TEST_DAILY_DTSBXPFL')
|
||||||
('TEST_DAILY_DTSMIN02','TEST_DAILY_DTSGSID9'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (58, N'TEST_DAILY_DTSBE405', N'TEST_DAILY_DTSBXPFL')
|
||||||
('TEST_DAILY_DTSRQ459','TEST_DAILY_DTSMIN01'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (59, N'TEST_DAILY_DTSBX405', N'TEST_DAILY_DTSBXPFL')
|
||||||
('TEST_DAILY_DTSRQ459','TEST_DAILY_DTSMIN02'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (60, N'TEST_DAILY_DTSRQ335', N'TEST_DAILY_DTSBXPFL')
|
||||||
('TEST_DAILY_DTSBXPFL','TEST_DAILY_DTSRQ459'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (61, N'TEST_DAILY_DTSBX601', N'TEST_DAILY_DTSRQ335')
|
||||||
('TEST_DAILY_DESBD427','TEST_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (62, N'TEST_WEEKLY_DTSBXREJ', N'TEST_DAILY_DTSBXREL')
|
||||||
('TEST_DAILY_DTSBX403','TEST_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (63, N'TEST_WEEKLY_DTSBX122', N'TEST_WEEKLY_DTSPDAY7')
|
||||||
('TEST_DAILY_DTSBE405','TEST_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (64, N'TEST_WEEKLY_DTSRQ511', N'TEST_WEEKLY_DTSPDAY7')
|
||||||
('TEST_DAILY_DTSBX405','TEST_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (65, N'TEST_MONTHLY_DTSRQ414', N'TEST_DAILY_DTSPDAY1')
|
||||||
('TEST_DAILY_DTSRQ335','TEST_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (66, N'TEST_MONTHLY_DTSCHGVB', N'TEST_MONTHLY_DTSPMON1')
|
||||||
('TEST_DAILY_DTSBX601','TEST_DAILY_DTSRQ335'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (67, N'TEST_MONTHLY_DTSCHGVR', N'TEST_MONTHLY_DTSCHGVB')
|
||||||
('TEST_WEEKLY_DTSBXREJ','TEST_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (68, N'TEST_MONTHLY_DTSVBKUP', N'TEST_MONTHLY_DTSPMON1')
|
||||||
('TEST_WEEKLY_DTSBX122','TEST_WEEKLY_DTSPDAY7'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (69, N'TEST_MONTHLY_DTSVRSTR', N'TEST_MONTHLY_DTSVBKUP')
|
||||||
('TEST_WEEKLY_DTSRQ511','TEST_WEEKLY_DTSPDAY7'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (70, N'TEST_MONTHLY_DTSRQ442', N'TEST_MONTHLY_DTSRQ513')
|
||||||
('TEST_MONTHLY_DTSRQ414','TEST_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (71, N'TEST_QUARTERLY_DTSRQ119', N'TEST_DAILY_DTSRQ325')
|
||||||
('TEST_MONTHLY_DTSCHGVB','TEST_MONTHLY_DTSPMON1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (72, N'TEST_QUARTERLY_DTSRQ417', N'TEST_DAILY_DTSRQ325')
|
||||||
('TEST_MONTHLY_DTSCHGVR','TEST_MONTHLY_DTSCHGVB'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (73, N'TEST_QUARTERLY_DTSRQ320', N'TEST_DAILY_DTSRQ325')
|
||||||
('TEST_MONTHLY_DTSVBKUP','TEST_MONTHLY_DTSPMON1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (74, N'TEST_QUARTERLY_DTSRQ793', N'TEST_DAILY_DTSRQ325')
|
||||||
('TEST_MONTHLY_DTSVRSTR','TEST_MONTHLY_DTSVBKUP'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (75, N'TEST_QUARTERLY_DTSCHGQ1', N'TEST_DAILY_DTSRQ325')
|
||||||
('TEST_MONTHLY_DTSRQ442','TEST_MONTHLY_DTSRQ513');
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (76, N'TEST_QUARTERLY_DTSRQ327', N'TEST_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (77, N'TEST_QUARTERLY_DTSRQ412', N'TEST_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (78, N'TEST_QUARTERLY_DTSRQ591', N'TEST_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (79, N'TEST_QUARTERLY_DTSRQ902', N'TEST_DAILY_DTSPDAY1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (80, N'TEST_QUARTERLY_DTSCHGQ2', N'TEST_DAILY_DTSPDAY1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (81, N'TEST_QUARTERLY_DTSCHGRT', N'TEST_QUARTERLY_DTSRQ591')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (82, N'TEST_QUARTERLY_DTSRQ328', N'TEST_QUARTERLY_DTSRQ327')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (83, N'TEST_QUARTERLY_DTSBX500', N'TEST_QUARTERLY_DTSRQ417')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (84, N'TEST_QUARTERLY_DTSRQ713', N'TEST_MONTHLY_DTSPMON1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (85, N'TEST_QUARTERLY_DTSCHRGS', N'TEST_QUARTERLY_DTSCHGRT')
|
||||||
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobDependencies] OFF
|
||||||
|
GO
|
||||||
|
|||||||
17
SQLAgent/02_Test/2_Functions/fn_GetNextWorkday.sql
Normal file
17
SQLAgent/02_Test/2_Functions/fn_GetNextWorkday.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
-- Returns the next valid workday on or after the given date
|
||||||
|
CREATE OR ALTER FUNCTION dbo.fn_GetNextWorkday (@InputDate DATE)
|
||||||
|
RETURNS DATE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @Workday DATE = @InputDate;
|
||||||
|
|
||||||
|
WHILE DATENAME(WEEKDAY, @Workday) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = @Workday)
|
||||||
|
BEGIN
|
||||||
|
SET @Workday = DATEADD(DAY, 1, @Workday);
|
||||||
|
END
|
||||||
|
|
||||||
|
RETURN @Workday;
|
||||||
|
END;
|
||||||
17
SQLAgent/02_Test/2_Functions/fn_GetPreviousWorkday.sql
Normal file
17
SQLAgent/02_Test/2_Functions/fn_GetPreviousWorkday.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
-- Returns the most recent valid workday before or equal to the given date
|
||||||
|
CREATE OR ALTER FUNCTION dbo.fn_GetPreviousWorkday (@InputDate DATE)
|
||||||
|
RETURNS DATE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @Workday DATE = @InputDate;
|
||||||
|
|
||||||
|
WHILE DATENAME(WEEKDAY, @Workday) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = @Workday)
|
||||||
|
BEGIN
|
||||||
|
SET @Workday = DATEADD(DAY, -1, @Workday);
|
||||||
|
END
|
||||||
|
|
||||||
|
RETURN @Workday;
|
||||||
|
END;
|
||||||
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_CheckJobConditions.sql
Normal file
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_CheckJobConditions.sql
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1,98 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_CreateDailyJobSchedule
|
||||||
|
@Env VARCHAR(10) = 'DEVL' -- Added parameter with default value
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobID INT,
|
||||||
|
@JobName SYSNAME,
|
||||||
|
@ScheduledStartTime TIME(0),
|
||||||
|
@Frequency NVARCHAR(20),
|
||||||
|
@FrequencyPattern NVARCHAR(MAX),
|
||||||
|
@ScheduleName SYSNAME,
|
||||||
|
@StartTimeInt INT,
|
||||||
|
@FreqInterval INT,
|
||||||
|
@TimeString VARCHAR(8),
|
||||||
|
@ActiveStartDate INT,
|
||||||
|
@dbName SYSNAME; -- Added variable for database name
|
||||||
|
|
||||||
|
-- Determine database name based on environment
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Prepare active start date as INT (YYYYMMDD)
|
||||||
|
SET @ActiveStartDate = CONVERT(INT, CONVERT(CHAR(8), GETDATE(), 112));
|
||||||
|
|
||||||
|
-- Dynamic SQL to fetch jobs from the appropriate database
|
||||||
|
DECLARE @Sql NVARCHAR(MAX);
|
||||||
|
SET @Sql = N'
|
||||||
|
DECLARE job_cursor CURSOR FOR
|
||||||
|
SELECT JobID, JobName, ScheduledStartTime, Frequency, FrequencyPattern
|
||||||
|
FROM ' + QUOTENAME(@dbName) + N'.dbo.JobControl
|
||||||
|
WHERE UPPER(Frequency) = ''DAILY''
|
||||||
|
AND IsActive = 1;';
|
||||||
|
|
||||||
|
-- Execute dynamic SQL to declare cursor
|
||||||
|
EXEC sp_executesql @Sql;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobID, @JobName, @ScheduledStartTime, @Frequency, @FrequencyPattern;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
-- Step 1: Convert ScheduledStartTime (TIME) to HH:MM:SS string
|
||||||
|
SET @TimeString = CONVERT(VARCHAR(8), @ScheduledStartTime, 108);
|
||||||
|
|
||||||
|
-- Step 2: Remove colons and convert to INT (HHMMSS)
|
||||||
|
SET @StartTimeInt = CONVERT(INT, REPLACE(@TimeString, ':', ''));
|
||||||
|
|
||||||
|
-- Step 3: Prepare schedule name
|
||||||
|
SET @ScheduleName = CONCAT(@JobName, '_DailySchedule');
|
||||||
|
|
||||||
|
-- Step 4: Fixed freq_interval for Monday to Friday
|
||||||
|
SET @FreqInterval = 62; -- Mon(2)+Tue(4)+Wed(8)+Thu(16)+Fri(32) = 62
|
||||||
|
|
||||||
|
-- Step 5: Delete existing schedule if it exists (idempotency)
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM msdb.dbo.sysschedules s
|
||||||
|
JOIN msdb.dbo.sysjobschedules js ON s.schedule_id = js.schedule_id
|
||||||
|
JOIN msdb.dbo.sysjobs j ON j.job_id = js.job_id
|
||||||
|
WHERE j.name = @JobName AND s.name = @ScheduleName
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule @schedule_name = @ScheduleName;
|
||||||
|
END
|
||||||
|
|
||||||
|
-- Step 6: Create weekly schedule (Monday to Friday) running once per day
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 8, -- weekly
|
||||||
|
@freq_interval = @FreqInterval,
|
||||||
|
@freq_recurrence_factor = 1, -- every week
|
||||||
|
@active_start_time = @StartTimeInt,
|
||||||
|
@active_start_date = @ActiveStartDate;
|
||||||
|
|
||||||
|
-- Step 7: Attach schedule to job
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
-- Fetch next job
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobID, @JobName, @ScheduledStartTime, @Frequency, @FrequencyPattern;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
|
||||||
|
PRINT 'Daily job schedules (Monday to Friday) created successfully for ' + @dbName;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_CreateSQLAgentJob.sql
Normal file
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_CreateSQLAgentJob.sql
Normal file
Binary file not shown.
@ -0,0 +1,223 @@
|
|||||||
|
USE [msdb];
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_CreateWeeklySchedules
|
||||||
|
@Env VARCHAR(10) = 'DEVL' -- Added parameter with default value
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobName SYSNAME,
|
||||||
|
@FrequencyPattern NVARCHAR(MAX),
|
||||||
|
@StartTime VARCHAR(50),
|
||||||
|
@ScheduleName SYSNAME,
|
||||||
|
@StartTimeInt INT,
|
||||||
|
@FreqInterval INT,
|
||||||
|
@ActiveDate INT,
|
||||||
|
@computedFreq INT,
|
||||||
|
@dbName SYSNAME; -- Added variable for database name
|
||||||
|
|
||||||
|
-- Determine database name based on environment
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
SET @ActiveDate = CONVERT(INT, CONVERT(CHAR(8), GETDATE(), 112));
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
-- Dynamic SQL for cursor to fetch active weekly jobs from appropriate database
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
DECLARE @Sql NVARCHAR(MAX);
|
||||||
|
SET @Sql = N'
|
||||||
|
DECLARE job_cursor CURSOR FAST_FORWARD FOR
|
||||||
|
SELECT
|
||||||
|
JobName,
|
||||||
|
FrequencyPattern,
|
||||||
|
ScheduledStartTime
|
||||||
|
FROM ' + QUOTENAME(@dbName) + N'.dbo.JobControl
|
||||||
|
WHERE UPPER(Frequency) = ''WEEKLY''
|
||||||
|
AND IsActive = 1;';
|
||||||
|
|
||||||
|
-- Execute dynamic SQL to declare cursor
|
||||||
|
EXEC sp_executesql @Sql;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Reset per-job variables
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SET @FreqInterval = 0;
|
||||||
|
SET @computedFreq = 0;
|
||||||
|
SET @StartTimeInt = NULL;
|
||||||
|
SET @ScheduleName = NULL;
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Correctly format the start time (HHMMSS without extra zeros)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SET @StartTime = LTRIM(RTRIM(ISNULL(@StartTime, '00:00:00')));
|
||||||
|
|
||||||
|
-- Parse time and convert to HHMMSS integer
|
||||||
|
DECLARE @TimeParts TABLE (part NVARCHAR(10), idx INT);
|
||||||
|
INSERT INTO @TimeParts (part, idx)
|
||||||
|
SELECT value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) - 1
|
||||||
|
FROM STRING_SPLIT(LEFT(@StartTime, 8), ':');
|
||||||
|
|
||||||
|
DECLARE @Hours INT, @Minutes INT, @Seconds INT;
|
||||||
|
|
||||||
|
SELECT @Hours = CAST(part AS INT) FROM @TimeParts WHERE idx = 0;
|
||||||
|
SELECT @Minutes = CAST(part AS INT) FROM @TimeParts WHERE idx = 1;
|
||||||
|
SELECT @Seconds = CAST(part AS INT) FROM @TimeParts WHERE idx = 2;
|
||||||
|
|
||||||
|
-- Ensure valid time ranges
|
||||||
|
SET @Hours = ISNULL(@Hours, 0);
|
||||||
|
SET @Minutes = ISNULL(@Minutes, 0);
|
||||||
|
SET @Seconds = ISNULL(@Seconds, 0);
|
||||||
|
|
||||||
|
IF @Hours < 0 OR @Hours > 23 SET @Hours = 0;
|
||||||
|
IF @Minutes < 0 OR @Minutes > 59 SET @Minutes = 0;
|
||||||
|
IF @Seconds < 0 OR @Seconds > 59 SET @Seconds = 0;
|
||||||
|
|
||||||
|
SET @StartTimeInt = (@Hours * 10000) + (@Minutes * 100) + @Seconds;
|
||||||
|
|
||||||
|
SET @ScheduleName = CONCAT(@JobName, '_WeeklySchedule');
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Parse JSON days using a local temporary table
|
||||||
|
------------------------------------------------------------------
|
||||||
|
CREATE TABLE #Days (DayName NVARCHAR(10));
|
||||||
|
|
||||||
|
INSERT INTO #Days (DayName)
|
||||||
|
SELECT TRIM(value)
|
||||||
|
FROM OPENJSON(ISNULL(@FrequencyPattern, '{}'), '$.Days');
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Compute bitmask correctly (values should be 1-127)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SELECT @computedFreq = ISNULL(SUM(
|
||||||
|
CASE UPPER(DayName)
|
||||||
|
WHEN 'SUN' THEN 1
|
||||||
|
WHEN 'MON' THEN 2
|
||||||
|
WHEN 'TUE' THEN 4
|
||||||
|
WHEN 'WED' THEN 8
|
||||||
|
WHEN 'THU' THEN 16
|
||||||
|
WHEN 'FRI' THEN 32
|
||||||
|
WHEN 'SAT' THEN 64
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
), 0)
|
||||||
|
FROM #Days;
|
||||||
|
|
||||||
|
DROP TABLE #Days; -- Explicitly drop the temp table
|
||||||
|
|
||||||
|
SET @FreqInterval = ISNULL(@computedFreq, 0);
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Validate freq_interval (must be 1..127)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
IF @FreqInterval < 1 OR @FreqInterval > 127
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Warning: Weekly job ' + @JobName +
|
||||||
|
' has invalid freq_interval (' + ISNULL(CAST(@FreqInterval AS VARCHAR(10)), 'NULL') +
|
||||||
|
'). Days found: ' + ISNULL(@FrequencyPattern, 'None') + '. Skipping.';
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
CONTINUE;
|
||||||
|
END
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Debug output to verify calculations
|
||||||
|
------------------------------------------------------------------
|
||||||
|
PRINT 'Job: ' + @JobName +
|
||||||
|
', Days: ' + @FrequencyPattern +
|
||||||
|
', FreqInterval: ' + CAST(@FreqInterval AS VARCHAR(3)) +
|
||||||
|
', StartTime: ' + CAST(@StartTimeInt AS VARCHAR(6));
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Safely detach and delete any existing schedule with this name
|
||||||
|
-- Use TRY/CATCH for schedule operations since non-existence is expected
|
||||||
|
------------------------------------------------------------------
|
||||||
|
BEGIN TRY
|
||||||
|
DECLARE @schedule_id INT;
|
||||||
|
DECLARE @attach_count INT;
|
||||||
|
|
||||||
|
-- Check if schedule exists and get its ID
|
||||||
|
SELECT @schedule_id = s.schedule_id
|
||||||
|
FROM msdb.dbo.sysschedules s
|
||||||
|
JOIN msdb.dbo.sysjobschedules js ON s.schedule_id = js.schedule_id
|
||||||
|
JOIN msdb.dbo.sysjobs j ON j.job_id = js.job_id
|
||||||
|
WHERE j.name = @JobName AND s.name = @ScheduleName;
|
||||||
|
|
||||||
|
IF @schedule_id IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
-- Detach from this job (if attached)
|
||||||
|
EXEC msdb.dbo.sp_detach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
-- Check if schedule still attached to other jobs
|
||||||
|
SELECT @attach_count = COUNT(*)
|
||||||
|
FROM msdb.dbo.sysjobschedules js
|
||||||
|
WHERE js.schedule_id = @schedule_id;
|
||||||
|
|
||||||
|
IF @attach_count = 0
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
PRINT 'Existing schedule deleted: ' + @ScheduleName;
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Notice: schedule ' + @ScheduleName + ' could not be deleted because it is still attached to other jobs.';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
-- Schedule operations might fail if schedule doesn't exist, which is fine
|
||||||
|
PRINT 'Notice: ' + ERROR_MESSAGE() + ' - proceeding with new schedule creation.';
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Create the unified weekly schedule with subday config
|
||||||
|
------------------------------------------------------------------
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 8, -- Weekly
|
||||||
|
@freq_interval = @FreqInterval, -- Bitmask of weekdays
|
||||||
|
@freq_recurrence_factor = 1, -- Every week
|
||||||
|
@freq_subday_type = 1, -- Once per day
|
||||||
|
@freq_subday_interval = 1,
|
||||||
|
@active_start_time = @StartTimeInt,
|
||||||
|
@active_start_date = @ActiveDate;
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Attach the schedule to the job
|
||||||
|
------------------------------------------------------------------
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
PRINT 'Weekly schedule created for job: ' + @JobName +
|
||||||
|
' (Days=' + CAST(@FreqInterval AS VARCHAR(10)) +
|
||||||
|
', Time=' + RIGHT('000000' + CAST(@StartTimeInt AS VARCHAR(6)), 6) + ')';
|
||||||
|
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
PRINT 'Error scheduling job ' + ISNULL(@JobName, 'Unknown') + ': ' + ERROR_MESSAGE();
|
||||||
|
END CATCH;
|
||||||
|
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
|
||||||
|
PRINT 'All weekly job schedules processed for ' + @dbName;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_ForceComplete.sql
Normal file
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_ForceComplete.sql
Normal file
Binary file not shown.
261
SQLAgent/02_Test/3_Stored_Procedures/usp_GenerateJobSchedule.sql
Normal file
261
SQLAgent/02_Test/3_Stored_Procedures/usp_GenerateJobSchedule.sql
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
USE [TestDUTASJobSchedule];
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_GenerateJobSchedule
|
||||||
|
@Year INT
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 1. Cleanup existing schedule data for this year
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DELETE FROM dbo.JobSchedule WHERE YearOfSchedule = @Year;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 2. Variable declarations
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DECLARE
|
||||||
|
@JobName VARCHAR(100),
|
||||||
|
@Frequency VARCHAR(20),
|
||||||
|
@Pattern NVARCHAR(2000),
|
||||||
|
@ScheduledTime TIME,
|
||||||
|
@RuleName NVARCHAR(100),
|
||||||
|
@Month INT,
|
||||||
|
@BaseDate DATE,
|
||||||
|
@ScheduledDate DATE,
|
||||||
|
@AdjustedDate DATE,
|
||||||
|
@FailSafeDate DATE = '9999-12-31';
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 3. Temporary table to process jobs more efficiently
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
CREATE TABLE #JobProcessing (
|
||||||
|
JobName VARCHAR(100),
|
||||||
|
Frequency VARCHAR(20),
|
||||||
|
Pattern NVARCHAR(2000),
|
||||||
|
ScheduledTime TIME,
|
||||||
|
RuleName NVARCHAR(100),
|
||||||
|
MonthsJSON NVARCHAR(MAX),
|
||||||
|
DayNum INT,
|
||||||
|
HasExplicitSchedule BIT
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Populate temporary table with parsed JSON data
|
||||||
|
INSERT INTO #JobProcessing (JobName, Frequency, Pattern, ScheduledTime, RuleName, MonthsJSON, DayNum, HasExplicitSchedule)
|
||||||
|
SELECT
|
||||||
|
jc.JobName,
|
||||||
|
jc.Frequency,
|
||||||
|
jc.FrequencyPattern,
|
||||||
|
jc.ScheduledStartTime,
|
||||||
|
JSON_VALUE(jc.FrequencyPattern, '$.Rule'),
|
||||||
|
JSON_QUERY(jc.FrequencyPattern, '$.Months'),
|
||||||
|
JSON_VALUE(jc.FrequencyPattern, '$.Day'),
|
||||||
|
CASE WHEN JSON_QUERY(jc.FrequencyPattern, '$.Schedule') IS NOT NULL THEN 1 ELSE 0 END
|
||||||
|
FROM dbo.JobControl jc
|
||||||
|
WHERE UPPER(jc.Frequency) IN ('MONTHLY','QUARTERLY')
|
||||||
|
AND jc.IsActive = 1;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 4. Process MONTHLY jobs
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
CASE
|
||||||
|
WHEN jp.RuleName = 'FirstWorkday' THEN dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, m.MonthNum, 1))
|
||||||
|
WHEN jp.RuleName = 'LastWorkday' THEN dbo.fn_GetPreviousWorkday(EOMONTH(DATEFROMPARTS(@Year, m.MonthNum, 1)))
|
||||||
|
ELSE @FailSafeDate
|
||||||
|
END AS ScheduledDate,
|
||||||
|
CASE
|
||||||
|
WHEN jp.RuleName = 'FirstWorkday' THEN dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, m.MonthNum, 1))
|
||||||
|
WHEN jp.RuleName = 'LastWorkday' THEN dbo.fn_GetPreviousWorkday(EOMONTH(DATEFROMPARTS(@Year, m.MonthNum, 1)))
|
||||||
|
ELSE @FailSafeDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, m.MonthNum, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) m(MonthNum)
|
||||||
|
WHERE jp.Frequency = 'MONTHLY'
|
||||||
|
AND jp.RuleName IN ('FirstWorkday', 'LastWorkday');
|
||||||
|
|
||||||
|
-- Handle monthly jobs with unknown rules
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
@FailSafeDate,
|
||||||
|
@FailSafeDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, m.MonthNum, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) m(MonthNum)
|
||||||
|
WHERE jp.Frequency = 'MONTHLY'
|
||||||
|
AND jp.RuleName NOT IN ('FirstWorkday', 'LastWorkday');
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 5. Process QUARTERLY jobs - FirstWorkdayOfQuarter
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, q.StartMonth, 1)),
|
||||||
|
dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, q.StartMonth, 1)),
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, q.StartMonth, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(4),(7),(10)) q(StartMonth)
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.RuleName = 'FirstWorkdayOfQuarter';
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 6. Process QUARTERLY jobs - Months array with Day number
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
;WITH QuarterlyMonths AS (
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
CAST(m.[value] AS INT) AS MonthNum,
|
||||||
|
jp.DayNum
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS APPLY OPENJSON(jp.MonthsJSON) m
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.MonthsJSON IS NOT NULL
|
||||||
|
AND jp.DayNum IS NOT NULL
|
||||||
|
AND jp.RuleName IS NULL
|
||||||
|
AND jp.HasExplicitSchedule = 0
|
||||||
|
),
|
||||||
|
QuarterlyDates AS (
|
||||||
|
SELECT
|
||||||
|
qm.JobName,
|
||||||
|
qm.Frequency,
|
||||||
|
qm.Pattern,
|
||||||
|
qm.MonthNum,
|
||||||
|
qm.DayNum,
|
||||||
|
CASE
|
||||||
|
WHEN qm.DayNum <= DAY(EOMONTH(DATEFROMPARTS(@Year, qm.MonthNum, 1)))
|
||||||
|
THEN DATEFROMPARTS(@Year, qm.MonthNum, qm.DayNum)
|
||||||
|
ELSE EOMONTH(DATEFROMPARTS(@Year, qm.MonthNum, 1))
|
||||||
|
END AS BaseDate
|
||||||
|
FROM QuarterlyMonths qm
|
||||||
|
)
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
qd.JobName,
|
||||||
|
qd.Frequency,
|
||||||
|
qd.Pattern,
|
||||||
|
qd.BaseDate,
|
||||||
|
CASE
|
||||||
|
WHEN DATENAME(WEEKDAY, qd.BaseDate) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = qd.BaseDate)
|
||||||
|
THEN dbo.fn_GetPreviousWorkday(qd.BaseDate)
|
||||||
|
ELSE qd.BaseDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(qd.BaseDate, 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM QuarterlyDates qd;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 7. Process QUARTERLY jobs - Explicit Schedule array
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
;WITH ExplicitSchedules AS (
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
s.[Month] AS MonthNum,
|
||||||
|
s.[Day] AS DayNum
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS APPLY OPENJSON(jp.Pattern, '$.Schedule')
|
||||||
|
WITH (
|
||||||
|
[Month] INT '$.Month',
|
||||||
|
[Day] INT '$.Day'
|
||||||
|
) s
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.HasExplicitSchedule = 1
|
||||||
|
),
|
||||||
|
ExplicitScheduleDates AS (
|
||||||
|
SELECT
|
||||||
|
es.JobName,
|
||||||
|
es.Frequency,
|
||||||
|
es.Pattern,
|
||||||
|
es.MonthNum,
|
||||||
|
es.DayNum,
|
||||||
|
CASE
|
||||||
|
WHEN es.DayNum <= DAY(EOMONTH(DATEFROMPARTS(@Year, es.MonthNum, 1)))
|
||||||
|
THEN DATEFROMPARTS(@Year, es.MonthNum, es.DayNum)
|
||||||
|
ELSE EOMONTH(DATEFROMPARTS(@Year, es.MonthNum, 1))
|
||||||
|
END AS BaseDate
|
||||||
|
FROM ExplicitSchedules es
|
||||||
|
)
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
esd.JobName,
|
||||||
|
esd.Frequency,
|
||||||
|
esd.Pattern,
|
||||||
|
esd.BaseDate,
|
||||||
|
CASE
|
||||||
|
WHEN DATENAME(WEEKDAY, esd.BaseDate) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = esd.BaseDate)
|
||||||
|
THEN dbo.fn_GetPreviousWorkday(esd.BaseDate)
|
||||||
|
ELSE esd.BaseDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(esd.BaseDate, 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM ExplicitScheduleDates esd;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 8. Handle any quarterly jobs that didn't match the patterns above
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
@FailSafeDate,
|
||||||
|
@FailSafeDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, 1, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT 1 FROM dbo.JobSchedule js
|
||||||
|
WHERE js.JobName = jp.JobName AND js.YearOfSchedule = @Year
|
||||||
|
);
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 9. Cleanup and output
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DROP TABLE #JobProcessing;
|
||||||
|
|
||||||
|
-- Update any NULL dates to fail-safe date
|
||||||
|
UPDATE dbo.JobSchedule
|
||||||
|
SET ScheduledDate = @FailSafeDate,
|
||||||
|
AdjustedRunDate = @FailSafeDate
|
||||||
|
WHERE YearOfSchedule = @Year
|
||||||
|
AND (ScheduledDate IS NULL OR AdjustedRunDate IS NULL);
|
||||||
|
|
||||||
|
DECLARE @RecordCount INT = (SELECT COUNT(*) FROM dbo.JobSchedule WHERE YearOfSchedule = @Year);
|
||||||
|
|
||||||
|
PRINT 'Job schedule generation completed for year ' + CAST(@Year AS VARCHAR(4)) +
|
||||||
|
'. Total records created: ' + CAST(@RecordCount AS VARCHAR(10));
|
||||||
|
END;
|
||||||
|
GO
|
||||||
160
SQLAgent/02_Test/3_Stored_Procedures/usp_ScheduleJob.sql
Normal file
160
SQLAgent/02_Test/3_Stored_Procedures/usp_ScheduleJob.sql
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
USE [msdb]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[usp_ScheduleJob] Script Date: 10/18/2025 9:52:04 AM ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE [dbo].[usp_ScheduleJob]
|
||||||
|
@JobName NVARCHAR(100),
|
||||||
|
@Env CHAR(4), -- 'DEVL' | 'TEST' | 'PROD'
|
||||||
|
@RunDate DATE,
|
||||||
|
@RunTime TIME
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobId UNIQUEIDENTIFIER,
|
||||||
|
@ScheduleName NVARCHAR(200),
|
||||||
|
@dbName NVARCHAR(128),
|
||||||
|
@ActiveStartDate INT,
|
||||||
|
@ActiveStartTime INT,
|
||||||
|
@Sql NVARCHAR(MAX),
|
||||||
|
@JobExists BIT = 0,
|
||||||
|
@ScheduleId INT;
|
||||||
|
|
||||||
|
-- Table variable must be declared separately and at the top level
|
||||||
|
DECLARE @ExistingSchedules TABLE (
|
||||||
|
schedule_id INT,
|
||||||
|
schedule_name NVARCHAR(200)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Map environment to actual DB name
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
ELSE 'DevlDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Validate parameters
|
||||||
|
IF @Env NOT IN ('DEVL','TEST','PROD')
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('Env must be one of: DEVL, TEST, PROD.', 16, 1);
|
||||||
|
RETURN;
|
||||||
|
END
|
||||||
|
|
||||||
|
IF @RunDate < CAST(GETDATE() AS DATE)
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('RunDate cannot be in the past.', 16, 1);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Check if job exists in JobControl table
|
||||||
|
SET @Sql = N'SELECT @JobExists = 1 FROM ' + QUOTENAME(@dbName) + '.dbo.JobControl WHERE JobName = @JobNameParam';
|
||||||
|
|
||||||
|
EXEC sp_executesql @Sql,
|
||||||
|
N'@JobNameParam NVARCHAR(100), @JobExists BIT OUTPUT',
|
||||||
|
@JobNameParam = @JobName,
|
||||||
|
@JobExists = @JobExists OUTPUT;
|
||||||
|
|
||||||
|
IF @JobExists = 0
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('Job %s not found in JobControl table.', 16, 1, @JobName);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Activate job in control table
|
||||||
|
SET @Sql = N'UPDATE ' + QUOTENAME(@dbName) + '.dbo.JobControl SET IsActive = 1 WHERE JobName = @JobNameParam';
|
||||||
|
EXEC sp_executesql @Sql,
|
||||||
|
N'@JobNameParam NVARCHAR(100)',
|
||||||
|
@JobNameParam = @JobName;
|
||||||
|
|
||||||
|
PRINT 'Job activated in JobControl.';
|
||||||
|
|
||||||
|
-- Convert date/time to SQL Agent format
|
||||||
|
SET @ActiveStartDate = CONVERT(INT, CONVERT(CHAR(8), @RunDate, 112));
|
||||||
|
SET @ActiveStartTime = DATEPART(HOUR, @RunTime) * 10000 +
|
||||||
|
DATEPART(MINUTE, @RunTime) * 100 +
|
||||||
|
DATEPART(SECOND, @RunTime);
|
||||||
|
|
||||||
|
SET @ScheduleName = @JobName + '_MonthlySchedule';
|
||||||
|
|
||||||
|
-- Get job id
|
||||||
|
SELECT @JobId = job_id
|
||||||
|
FROM msdb.dbo.sysjobs
|
||||||
|
WHERE name = @JobName;
|
||||||
|
|
||||||
|
IF @JobId IS NULL
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('SQL Agent job "%s" not found.', 16, 1, @JobName);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
|
-- Detach and delete all existing schedules for this job
|
||||||
|
INSERT INTO @ExistingSchedules (schedule_id, schedule_name)
|
||||||
|
SELECT s.schedule_id, s.name
|
||||||
|
FROM msdb.dbo.sysschedules AS s
|
||||||
|
INNER JOIN msdb.dbo.sysjobschedules AS js ON s.schedule_id = js.schedule_id
|
||||||
|
WHERE js.job_id = @JobId;
|
||||||
|
|
||||||
|
DECLARE @OldScheduleId INT, @OldScheduleName NVARCHAR(200);
|
||||||
|
|
||||||
|
DECLARE cur CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT schedule_id, schedule_name FROM @ExistingSchedules;
|
||||||
|
|
||||||
|
OPEN cur;
|
||||||
|
FETCH NEXT FROM cur INTO @OldScheduleId, @OldScheduleName;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Detaching old schedule: ' + @OldScheduleName;
|
||||||
|
EXEC msdb.dbo.sp_detach_schedule @job_id = @JobId, @schedule_name = @OldScheduleName;
|
||||||
|
|
||||||
|
PRINT 'Deleting old schedule: ' + @OldScheduleName;
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule @schedule_name = @OldScheduleName;
|
||||||
|
|
||||||
|
FETCH NEXT FROM cur INTO @OldScheduleId, @OldScheduleName;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE cur;
|
||||||
|
DEALLOCATE cur;
|
||||||
|
|
||||||
|
-- Create new one-time schedule
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 1, -- One-time
|
||||||
|
@active_start_date = @ActiveStartDate,
|
||||||
|
@active_start_time = @ActiveStartTime;
|
||||||
|
|
||||||
|
-- Attach schedule to job
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_id = @JobId,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
COMMIT TRANSACTION;
|
||||||
|
|
||||||
|
PRINT 'New schedule created for job "' + @JobName +
|
||||||
|
'" on ' + CONVERT(VARCHAR(10), @RunDate, 120) +
|
||||||
|
' at ' + CONVERT(VARCHAR(8), @RunTime, 108);
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF @@TRANCOUNT > 0
|
||||||
|
ROLLBACK TRANSACTION;
|
||||||
|
|
||||||
|
DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
|
||||||
|
RAISERROR('Error creating schedule: %s', 16, 1, @ErrorMessage);
|
||||||
|
END CATCH;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_ScheduleJobsForMonth
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE @MonthKey CHAR(7) = FORMAT(GETDATE(), 'yyyy-MM');
|
||||||
|
DECLARE @Year INT = YEAR(GETDATE());
|
||||||
|
DECLARE @JobName VARCHAR(100);
|
||||||
|
DECLARE @RunDate DATE;
|
||||||
|
DECLARE @RunTime TIME;
|
||||||
|
DECLARE @Env VARCHAR(10) = 'TEST'; -- configurable per environment
|
||||||
|
|
||||||
|
DECLARE job_cursor CURSOR FOR
|
||||||
|
SELECT js.JobName, js.AdjustedRunDate, jc.ScheduledStartTime
|
||||||
|
FROM dbo.JobSchedule js
|
||||||
|
INNER JOIN dbo.JobControl jc ON js.JobName = jc.JobName
|
||||||
|
WHERE js.MonthOfSchedule = @MonthKey
|
||||||
|
AND jc.IsActive = 1;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @RunDate, @RunTime;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.usp_ScheduleJob
|
||||||
|
@JobName = @JobName,
|
||||||
|
@Env = @Env,
|
||||||
|
@RunDate = @RunDate,
|
||||||
|
@RunTime = @RunTime;
|
||||||
|
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @RunDate, @RunTime;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
END
|
||||||
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_TriggerMissedJobs.sql
Normal file
BIN
SQLAgent/02_Test/3_Stored_Procedures/usp_TriggerMissedJobs.sql
Normal file
Binary file not shown.
Binary file not shown.
10
SQLAgent/02_Test/4_Job_Maintenance/ActivateOnDemandJob.sql
Normal file
10
SQLAgent/02_Test/4_Job_Maintenance/ActivateOnDemandJob.sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Schedule TEST OnDemand Job on 03 Nov at 18:15 PM
|
||||||
|
------------------------------------------------
|
||||||
|
EXEC dbo.usp_ScheduleJob
|
||||||
|
@JobName='TEST_MONTHLY_DTSRQ414',
|
||||||
|
@Env='TEST',
|
||||||
|
@RunDate='2025-11-03',
|
||||||
|
@RunTime='18:15:00';
|
||||||
141
SQLAgent/02_Test/4_Job_Maintenance/AddAllJobsToSQLAgent.sql
Normal file
141
SQLAgent/02_Test/4_Job_Maintenance/AddAllJobsToSQLAgent.sql
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
USE [msdb]
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Execute the stored procedure for each job
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX215', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX305', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGSID0', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_GSIRQ300', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSRQ202', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGSID1', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX202', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSFT202', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX432', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGACHD', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX303', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGWAGE', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGCHKS', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSESDAY', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGPAYT', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSDX145', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX629', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX630', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSFRAUD', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSRACHD', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBXACH', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBXREG', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX430', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX626', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX530', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBXREL', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX450', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX451', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSPACHD', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSPX148', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSRQ325', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX427', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSPDAY1', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSW4WGE', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGSID2', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSGSID9', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSMIN01', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSMIN02', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSRQ459', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBXPFL', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DESBD427', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX403', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBE405', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX405', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSRQ335', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_DAILY_DTSBX601', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSGSID0', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSGSID1', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSBX202', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSFT202', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSBX470', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSBXREJ', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSPDAY7', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSBX122', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSRQ511', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSRQ444', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_WEEKLY_DTSRQ126', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSRQ414', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSPMON1', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSCHGVB', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSCHGVR', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSVBKUP', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSVRSTR', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSRQ442', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSBX460', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSRQ513', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_MONTHLY_DTSCHGDC', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ119', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ902', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSBX500', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ417', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ320', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ713', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSBX468', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSCHGQ1', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSCHGQ2', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ327', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ328', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ412', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ793', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSWGE06', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSCHGRT', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSCHRGS', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ540', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRQ591', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSRTCHG', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DTSWGE01', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_QUARTERLY_DESBD426', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSACH01', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSBX415', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSBX452', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSBX453', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ120', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ123', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ125', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ305', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ306', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ308', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ311', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ410', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ411', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ423', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ426', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ429', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ439', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ602', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ606', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ607', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ609', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ611', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ612', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ717', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ718', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ720', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRQ721', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT715', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT716', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT717', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT718', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT719', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT720', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT722', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_ONDEMAND_DTSRT723', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ722', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ451', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ127', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ321', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ455', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ500', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ517', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ518', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ616', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ701', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ702', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ704', @Env = 'TEST';
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'TEST_YEARLY_DTSRQ910', @Env = 'TEST';
|
||||||
|
GO
|
||||||
@ -0,0 +1 @@
|
|||||||
|
EXEC msdb.dbo.usp_CreateDailyJobSchedule @Env = 'TEST';
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
USE [msdb]
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Create a job in SQL Agent (With Standard 3 steps approach)
|
||||||
|
EXEC dbo.usp_CreateSQLAgentJob @JobName = 'DEVL_DAILY_DTSBX215', @Env = 'DEVL';
|
||||||
@ -0,0 +1 @@
|
|||||||
|
EXEC msdb.dbo.usp_CreateWeeklySchedules @Env = 'TEST';
|
||||||
@ -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
|
||||||
12
SQLAgent/02_Test/4_Job_Maintenance/DeactivateJob.sql
Normal file
12
SQLAgent/02_Test/4_Job_Maintenance/DeactivateJob.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
|
||||||
|
UPDATE dbo.JobControl
|
||||||
|
SET IsActive = 0
|
||||||
|
WHERE Frequency = 'MONTHLY';
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Optional: Verify changes
|
||||||
|
SELECT JobName, Frequency, IsActive
|
||||||
|
FROM dbo.JobControl
|
||||||
|
WHERE Frequency = 'MONTHLY';
|
||||||
27
SQLAgent/02_Test/4_Job_Maintenance/DeleteSchedule.sql
Normal file
27
SQLAgent/02_Test/4_Job_Maintenance/DeleteSchedule.sql
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @EnvPrefix NVARCHAR(50) = N'TEST'; -- <<< 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
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
-- If you know both the job name and schedule name
|
||||||
|
DECLARE @JobName NVARCHAR(100) = 'TEST_MONTHLY_DTSCHGDC';
|
||||||
|
DECLARE @ScheduleName NVARCHAR(200) = 'TEST_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;
|
||||||
16
SQLAgent/02_Test/4_Job_Maintenance/ForceCompleteJob.sql
Normal file
16
SQLAgent/02_Test/4_Job_Maintenance/ForceCompleteJob.sql
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- 1. Check today's job status
|
||||||
|
SELECT JobName, Status, ErrorMessage
|
||||||
|
FROM dbo.JobExecutionHistory
|
||||||
|
WHERE RunDate = CAST(GETDATE() AS DATE)
|
||||||
|
AND JobName = 'TEST_WEEKLY_DTSGSID1';
|
||||||
|
|
||||||
|
-- 2. Mark DTSBX305 as manually overridden
|
||||||
|
EXEC dbo.usp_ForceComplete 'TEST_WEEKLY_DTSGSID1', 'Neeraj.Kumar';
|
||||||
|
|
||||||
|
-- 3. Verify the override
|
||||||
|
SELECT JobName, Status, OverrideBy, OverrideDate
|
||||||
|
FROM dbo.JobExecutionHistory
|
||||||
|
WHERE JobName = 'TEST_WEEKLY_DTSGSID1' AND RunDate = CAST(GETDATE() AS DATE);
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
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
|
||||||
47
SQLAgent/02_Test/4_Job_Maintenance/JobInfo.sql
Normal file
47
SQLAgent/02_Test/4_Job_Maintenance/JobInfo.sql
Normal 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 TestDUTASJobSchedule.dbo.JobControl
|
||||||
|
WHERE IsActive = 1
|
||||||
|
ORDER BY Frequency, ScheduledStartTime;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- View all inactive jobs
|
||||||
|
SELECT JobName, Frequency, ScheduledStartTime
|
||||||
|
FROM TestDUTASJobSchedule.dbo.JobControl
|
||||||
|
WHERE IsActive = 0
|
||||||
|
ORDER BY Frequency;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Find weekly/monthly jobs
|
||||||
|
SELECT JobName, Frequency, ScheduledStartTime
|
||||||
|
FROM TestDUTASJobSchedule.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) = 'TEST_MONTHLY_DTSCHGVR';
|
||||||
|
SELECT JobName, PredecessorJobName
|
||||||
|
FROM TestDUTASJobSchedule.dbo.JobDependencies
|
||||||
|
WHERE JobName = @Job;
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Show dependency chain overview
|
||||||
|
SELECT d.JobName, d.PredecessorJobName, jc.ScheduledStartTime, jc.Frequency
|
||||||
|
FROM TestDUTASJobSchedule.dbo.JobDependencies d
|
||||||
|
JOIN TestDUTASJobSchedule.dbo.JobControl jc ON d.JobName = jc.JobName
|
||||||
|
ORDER BY jc.Frequency, jc.ScheduledStartTime;
|
||||||
|
GO
|
||||||
42
SQLAgent/02_Test/4_Job_Maintenance/SQLAgentInfo.sql
Normal file
42
SQLAgent/02_Test/4_Job_Maintenance/SQLAgentInfo.sql
Normal 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
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
EXEC dbo.usp_ScheduleJobsForMonth;
|
||||||
21
SQLAgent/02_Test/4_Job_Maintenance/TodaysExecution.sql
Normal file
21
SQLAgent/02_Test/4_Job_Maintenance/TodaysExecution.sql
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
USE TestDUTASJobSchedule;
|
||||||
|
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;
|
||||||
9
SQLAgent/02_Test/4_Job_Maintenance/TriggerMissedJob.sql
Normal file
9
SQLAgent/02_Test/4_Job_Maintenance/TriggerMissedJob.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
USE [TestDUTASJobSchedule]
|
||||||
|
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;
|
||||||
|
|
||||||
102
SQLAgent/02_Test/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
102
SQLAgent/02_Test/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$JobName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[ValidateSet('DEVL', 'TEST', 'PROD')]
|
||||||
|
[string]$Env
|
||||||
|
)
|
||||||
|
|
||||||
|
try {
|
||||||
|
Write-Host "Starting job $JobName in environment $Env at $(Get-Date)"
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Extract JCL from JobName (ENV_FREQUENCY_JOB pattern)
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
$JCL = $JobName -replace '^[A-Z]+_[A-Z]+_', ''
|
||||||
|
Write-Host "Extracted JCL: $JCL from JobName: $JobName" -ForegroundColor Yellow
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Environment-specific configuration
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
switch ($Env.ToUpper()) {
|
||||||
|
'DEVL' {
|
||||||
|
$ComputerName = '10.57.110.120'
|
||||||
|
$DatabaseName = 'DevlDUTASJobSchedule'
|
||||||
|
}
|
||||||
|
'TEST' {
|
||||||
|
$ComputerName = '10.57.110.141'
|
||||||
|
$DatabaseName = 'TestDUTASJobSchedule'
|
||||||
|
}
|
||||||
|
'PROD' {
|
||||||
|
$ComputerName = '10.57.111.125'
|
||||||
|
$DatabaseName = 'ProdDUTASJobSchedule'
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
throw "Invalid environment specified: $Env"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Remote credentials
|
||||||
|
# (recommend moving credentials to secure vault for production)
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
$username = "DUTASSQLAdminP@does.dcgov.priv"
|
||||||
|
$password = "4ho@3Pr&Xof8" | ConvertTo-SecureString -AsPlainText -Force
|
||||||
|
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Execute job remotely using the extracted JCL
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
Write-Host "Connecting to remote server $ComputerName ..."
|
||||||
|
$exitCode = Invoke-Command -ComputerName $ComputerName `
|
||||||
|
-Credential $credential `
|
||||||
|
-Authentication CredSSP `
|
||||||
|
-SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck) `
|
||||||
|
-ArgumentList $JobName, $JCL, $Env `
|
||||||
|
-ScriptBlock {
|
||||||
|
param($JobName, $JCL, $Env)
|
||||||
|
|
||||||
|
Write-Host "Remote execution - JobName: $JobName, JCL: $JCL, Env: $Env"
|
||||||
|
|
||||||
|
$process = Start-Process -FilePath "powershell.exe" `
|
||||||
|
-ArgumentList "-ExecutionPolicy Bypass -File `"E:\PSScript\RCSubmit-Job.ps1`" -JobName `"$JCL`" -Env `"$Env`"" `
|
||||||
|
-NoNewWindow -Wait -PassThru
|
||||||
|
return $process.ExitCode
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($exitCode -eq 0) {
|
||||||
|
Write-Host "Job $JobName (JCL: $JCL) completed successfully at $(Get-Date)" -ForegroundColor Green
|
||||||
|
} else {
|
||||||
|
Write-Error "Job $JobName (JCL: $JCL) failed with exit code: $exitCode"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Error "Job $JobName failed with error: $($_.Exception.Message)"
|
||||||
|
$exitCode = 1
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
# Log exit code to the appropriate database
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
try {
|
||||||
|
$connectionString = "Server=localhost;Database=$DatabaseName;Trusted_Connection=true;"
|
||||||
|
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
|
||||||
|
$connection.Open()
|
||||||
|
|
||||||
|
$command = $connection.CreateCommand()
|
||||||
|
$command.CommandText = @"
|
||||||
|
INSERT INTO dbo.JobExitCodes (JobName, RunDate, ExitCode, RecordedTime)
|
||||||
|
VALUES ('$JobName', CAST(GETDATE() AS DATE), $exitCode, GETDATE());
|
||||||
|
"@
|
||||||
|
$command.ExecuteNonQuery()
|
||||||
|
$connection.Close()
|
||||||
|
Write-Host "Exit code $exitCode logged to database $DatabaseName for job $JobName"
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
$errorMsg = $_.Exception.Message
|
||||||
|
Write-Host "Failed to log exit code to database $DatabaseName`: $errorMsg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exit $exitCode
|
||||||
108
SQLAgent/02_Test/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
108
SQLAgent/02_Test/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
param(
|
||||||
|
[string]$JobName,
|
||||||
|
[string]$Env
|
||||||
|
)
|
||||||
|
|
||||||
|
# --- Parameter Validation ---
|
||||||
|
if (-not $JobName) {
|
||||||
|
Write-Host "JobName parameter is required" -ForegroundColor Red
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
if (-not $Env) {
|
||||||
|
Write-Host "Environment (Env) parameter is required" -ForegroundColor Red
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Execute Job ---
|
||||||
|
Write-Host "Submitting job: $JobName in environment: $Env" -ForegroundColor Cyan
|
||||||
|
$output = & "$env:rcbin\submit.exe" -DSN="DOESTAX.$Env.JOBS.BATCH.LIB($JobName)"
|
||||||
|
$exitCode = [int]$LASTEXITCODE
|
||||||
|
$isSuccess = 0
|
||||||
|
|
||||||
|
# --- Parse SYSLOG Path ---
|
||||||
|
$syslogPath = $null
|
||||||
|
$syslogFolder = "Not found"
|
||||||
|
$content = @()
|
||||||
|
$summary = @()
|
||||||
|
|
||||||
|
try {
|
||||||
|
$syslogPath = $output | Select-String -Pattern "SYSLOG=\[(.*)\]" | ForEach-Object { $_.Matches.Groups[1].Value }
|
||||||
|
|
||||||
|
if ($syslogPath -and (Test-Path $syslogPath)) {
|
||||||
|
$syslogFolder = Split-Path $syslogPath -Parent
|
||||||
|
$content = Get-Content $syslogPath -ErrorAction Stop
|
||||||
|
$summary = $content | Select-String -Pattern "%Job Overall Stats:" -Context 0,7 | ForEach-Object {
|
||||||
|
$_.Context.PostContext | Select-Object -Skip 1 -First 5
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Host "SYSLOG path not found or inaccessible: $syslogPath" -ForegroundColor Yellow
|
||||||
|
$summary = @("SYSLOG file not found in output", "Raw output:", $output -join "`n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Error processing SYSLOG: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||||
|
$summary = @("Error reading SYSLOG: $($_.Exception.Message)", "Raw output:", $output -join "`n")
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Evaluate Return Codes ---
|
||||||
|
$successConditions = @(
|
||||||
|
{ $JobName -eq "GSIRQ300" -and $exitCode -eq 50 },
|
||||||
|
{ $JobName -eq "DTSGWAGE" -and $exitCode -eq 8 },
|
||||||
|
{ $JobName -eq "DTSGCHKS" -and $exitCode -eq 8 },
|
||||||
|
{ $JobName -eq "DTSGPAYT" -and $exitCode -eq 8 },
|
||||||
|
{ $JobName -eq "DTSBXACH" -and $exitCode -eq 2 },
|
||||||
|
{ $JobName -eq "DTSBXREL" -and $exitCode -eq 2 },
|
||||||
|
{ $JobName -eq "DTSMIN02" -and $exitCode -eq 4 },
|
||||||
|
{ $JobName -eq "DTSBE405" -and $exitCode -eq 910 },
|
||||||
|
{ $JobName -eq "DTSBXREJ" -and $exitCode -eq 4 },
|
||||||
|
{ $JobName -eq "DTSRQ444" -and $exitCode -eq 4 },
|
||||||
|
{ $exitCode -eq 0 }
|
||||||
|
)
|
||||||
|
|
||||||
|
if ($successConditions | Where-Object { & $_ }) {
|
||||||
|
Write-Host "Job $JobName succeeded with code $exitCode" -ForegroundColor Green
|
||||||
|
$isSuccess = 0
|
||||||
|
} else {
|
||||||
|
Write-Host "Job $JobName failed with code $exitCode" -ForegroundColor Red
|
||||||
|
$isSuccess = 1
|
||||||
|
# Only use error if we don't have a proper summary
|
||||||
|
if ($summary.Count -eq 0) {
|
||||||
|
$summary = @($Error[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Email Notification ---
|
||||||
|
$smtpServer = "smtp4.dc.gov"
|
||||||
|
$fromEmail = "Dutas@dc.gov"
|
||||||
|
$toEmail = "zarath.lalputan@dc.gov"
|
||||||
|
$ccEmail = @("srujani.chandragiri@dc.gov")
|
||||||
|
|
||||||
|
$emailBody = @"
|
||||||
|
<pre style='font-family: Courier, monospace;'>
|
||||||
|
DUTAS Batch Job: $JobName Execution Report
|
||||||
|
==========================================
|
||||||
|
$($summary -join "`n")
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
Return Code: $exitCode
|
||||||
|
Status: $(if ($isSuccess -eq 0) { "SUCCESS" } else { "FAILED" })
|
||||||
|
JOBLOG Path: $syslogFolder
|
||||||
|
</pre>
|
||||||
|
"@
|
||||||
|
|
||||||
|
try {
|
||||||
|
Send-MailMessage -SmtpServer $smtpServer -Port 25 `
|
||||||
|
-From $fromEmail -To $toEmail -Cc $ccEmail `
|
||||||
|
-Subject "DUTAS-[$Env] Job Status: $JobName - $(if ($isSuccess -eq 0) { 'SUCCESS' } else { 'FAILED' })" `
|
||||||
|
-Body $emailBody -BodyAsHtml
|
||||||
|
Write-Host "Email sent successfully to $toEmail" -ForegroundColor Cyan
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Failed to send email: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "`n---------------------------------------------"
|
||||||
|
Write-Host "Job: $JobName | ExitCode: $exitCode | Status: $(if ($isSuccess -eq 0) { 'SUCCESS' } else { 'FAILED' })"
|
||||||
|
Write-Host "---------------------------------------------`n"
|
||||||
|
|
||||||
|
exit $isSuccess
|
||||||
BIN
SQLAgent/02_Test/6_Backup_Restore/Backup-Restore-Guide.docx
Normal file
BIN
SQLAgent/02_Test/6_Backup_Restore/Backup-Restore-Guide.docx
Normal file
Binary file not shown.
48
SQLAgent/02_Test/6_Backup_Restore/Backup-SQLAgent.ps1
Normal file
48
SQLAgent/02_Test/6_Backup_Restore/Backup-SQLAgent.ps1
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# ===================================================================
|
||||||
|
# SQL Agent Jobs Backup Script (PowerShell)
|
||||||
|
# Modern Version using SqlServer module
|
||||||
|
# & "E:\Neeraj\SqlAgent\v2\01_Test\6_Backup\Backup-SQLAgent.ps1" `
|
||||||
|
# -ServerName "DOES-DUTAS-SQL1" `
|
||||||
|
# -BackupPath "\\DOES-RAINVM-TST\E$\Neeraj\SqlAgent\Backup\"
|
||||||
|
#
|
||||||
|
# ===================================================================
|
||||||
|
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$ServerName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$BackupPath
|
||||||
|
)
|
||||||
|
|
||||||
|
# Load SQL Server PowerShell module
|
||||||
|
Import-Module SqlServer -ErrorAction Stop
|
||||||
|
|
||||||
|
# Create timestamp and output paths
|
||||||
|
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
|
||||||
|
$ZipFile = Join-Path $BackupPath "SQLAgentJobs_$Timestamp.zip"
|
||||||
|
|
||||||
|
# Ensure backup folder exists
|
||||||
|
if (-not (Test-Path $BackupPath)) {
|
||||||
|
New-Item -ItemType Directory -Path $BackupPath | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Connect to SQL Server
|
||||||
|
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $ServerName
|
||||||
|
|
||||||
|
# Export all jobs as individual SQL scripts
|
||||||
|
$JobFiles = @()
|
||||||
|
foreach ($job in $server.JobServer.Jobs) {
|
||||||
|
$SafeJobName = ($job.Name -replace '[\\/:*?"<>|]', '_')
|
||||||
|
$FileName = Join-Path $BackupPath "$SafeJobName`_$Timestamp.sql"
|
||||||
|
$job.Script() | Out-File -FilePath $FileName -Encoding UTF8
|
||||||
|
$JobFiles += $FileName
|
||||||
|
}
|
||||||
|
|
||||||
|
# Compress all SQL files into a single ZIP
|
||||||
|
Compress-Archive -Path $JobFiles -DestinationPath $ZipFile -Force
|
||||||
|
|
||||||
|
# Optional: clean up individual .sql files
|
||||||
|
# Remove-Item -Path $JobFiles
|
||||||
|
|
||||||
|
Write-Host "SQL Agent jobs backup complete: $ZipFile" -ForegroundColor Green
|
||||||
19
SQLAgent/02_Test/6_Backup_Restore/BackupDB.sql
Normal file
19
SQLAgent/02_Test/6_Backup_Restore/BackupDB.sql
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
USE master;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @SrcDB NVARCHAR(128) = 'TestDUTASJobSchedule';
|
||||||
|
DECLARE @BackupPath NVARCHAR(260) = '\\DOES-RAINVM-TST\E$\Neeraj\SqlAgent\Backup\' + @SrcDB + '.bak';
|
||||||
|
DECLARE @SQL NVARCHAR(MAX);
|
||||||
|
|
||||||
|
-- Dynamic SQL for backup
|
||||||
|
SET @SQL = '
|
||||||
|
BACKUP DATABASE [' + @SrcDB + ']
|
||||||
|
TO DISK = N''' + @BackupPath + '''
|
||||||
|
WITH INIT, COMPRESSION, STATS = 10;
|
||||||
|
';
|
||||||
|
|
||||||
|
-- Execute backup
|
||||||
|
EXEC(@SQL);
|
||||||
|
|
||||||
|
PRINT 'Backup completed: ' + @BackupPath;
|
||||||
|
GO
|
||||||
45
SQLAgent/02_Test/6_Backup_Restore/Cleanup-SQLAgent.ps1
Normal file
45
SQLAgent/02_Test/6_Backup_Restore/Cleanup-SQLAgent.ps1
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Deletes SQL Agent jobs whose names start with a given environment prefix (e.g., DEVL, TEST, PROD).
|
||||||
|
|
||||||
|
.PARAMETER ServerName
|
||||||
|
SQL Server instance name (use FCI virtual name if clustered).
|
||||||
|
|
||||||
|
.PARAMETER Env
|
||||||
|
Environment prefix for job deletion (e.g., DEVL, TEST, PROD).
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
.\Cleanup-SQLAgent.ps1 -ServerName "DOES-DUTAS-SQL1" -Env "DEVL"
|
||||||
|
#>
|
||||||
|
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$ServerName,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$Environment
|
||||||
|
)
|
||||||
|
|
||||||
|
# Load SQL Server module
|
||||||
|
Import-Module SqlServer -ErrorAction Stop
|
||||||
|
|
||||||
|
# Connect to SQL Server
|
||||||
|
$server = New-Object Microsoft.SqlServer.Management.Smo.Server $ServerName
|
||||||
|
|
||||||
|
# Create log file path (same folder as script)
|
||||||
|
$ScriptRoot = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||||
|
$LogPath = Join-Path $ScriptRoot "CleanupSQLAgent_$($Environment)_$(Get-Date -Format 'yyyyMMdd_HHmmss').log"
|
||||||
|
|
||||||
|
"=== SQL Agent Cleanup Started for $Environment : $(Get-Date) ===" | Out-File $LogPath -Encoding UTF8
|
||||||
|
|
||||||
|
# Take a snapshot of all jobs first (avoids collection modification issue)
|
||||||
|
$jobsToDelete = @($server.JobServer.Jobs | Where-Object { $_.Name -like "$Environment*" })
|
||||||
|
|
||||||
|
foreach ($job in $jobsToDelete) {
|
||||||
|
Write-Host "Deleting job: $($job.Name)" -ForegroundColor Yellow
|
||||||
|
"Deleting job: $($job.Name)" | Out-File $LogPath -Append -Encoding UTF8
|
||||||
|
$job.Drop()
|
||||||
|
}
|
||||||
|
|
||||||
|
"=== Cleanup Complete for $Environment : $(Get-Date) ===" | Out-File $LogPath -Append -Encoding UTF8
|
||||||
|
Write-Host "All $Environment SQL Agent jobs deleted successfully." -ForegroundColor Green
|
||||||
27
SQLAgent/02_Test/6_Backup_Restore/CleanupSQLAgent.sql
Normal file
27
SQLAgent/02_Test/6_Backup_Restore/CleanupSQLAgent.sql
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @EnvPrefix NVARCHAR(50) = N'DEVL'; -- <<< Change this to your environment prefix
|
||||||
|
DECLARE @job_id UNIQUEIDENTIFIER;
|
||||||
|
DECLARE @job_name NVARCHAR(200);
|
||||||
|
|
||||||
|
DECLARE JobCursor CURSOR FOR
|
||||||
|
SELECT job_id, name
|
||||||
|
FROM msdb.dbo.sysjobs
|
||||||
|
WHERE name LIKE @EnvPrefix + '%'; -- Only jobs starting with the given prefix
|
||||||
|
|
||||||
|
OPEN JobCursor;
|
||||||
|
FETCH NEXT FROM JobCursor INTO @job_id, @job_name;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Deleting job: ' + @job_name;
|
||||||
|
EXEC msdb.dbo.sp_delete_job @job_id = @job_id;
|
||||||
|
FETCH NEXT FROM JobCursor INTO @job_id, @job_name;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE JobCursor;
|
||||||
|
DEALLOCATE JobCursor;
|
||||||
|
|
||||||
|
PRINT 'All SQL Agent jobs starting with prefix ' + @EnvPrefix + ' deleted successfully.';
|
||||||
|
GO
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
$BackupZip = "\\DOES-RAINVM-TST\E$\Neeraj\SqlAgent\Backup\SQLAgentJobs_20251018_153000.zip"
|
||||||
|
$ExtractPath = "\\DOES-RAINVM-TST\E$\Neeraj\SqlAgent\Restore\"
|
||||||
|
|
||||||
|
# Create folder if not exist
|
||||||
|
if (-not (Test-Path $ExtractPath)) { New-Item -ItemType Directory -Path $ExtractPath | Out-Null }
|
||||||
|
|
||||||
|
# Extract the ZIP
|
||||||
|
Expand-Archive -Path $BackupZip -DestinationPath $ExtractPath -Force
|
||||||
31
SQLAgent/02_Test/6_Backup_Restore/RestoreDB.sql
Normal file
31
SQLAgent/02_Test/6_Backup_Restore/RestoreDB.sql
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
USE master;
|
||||||
|
GO
|
||||||
|
|
||||||
|
DECLARE @SrcDB NVARCHAR(128) = 'DevlDUTASJobSchedule'; -- original database
|
||||||
|
DECLARE @NewDB NVARCHAR(128) = 'DevlDUTASJobSchedule'; -- database name to restore as
|
||||||
|
DECLARE @BackupPath NVARCHAR(260) = '\\DOES-RAINVM-TST\E$\Neeraj\SqlAgent\Backup\' + @SrcDB + '.bak';
|
||||||
|
DECLARE @SQL NVARCHAR(MAX);
|
||||||
|
|
||||||
|
-- Optional: check logical file names inside backup
|
||||||
|
-- RESTORE FILELISTONLY FROM DISK = @BackupPath;
|
||||||
|
|
||||||
|
-- Dynamic SQL for restore
|
||||||
|
SET @SQL = '
|
||||||
|
-- Optional: disconnect active connections
|
||||||
|
ALTER DATABASE [' + @NewDB + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
RESTORE DATABASE [' + @NewDB + ']
|
||||||
|
FROM DISK = N''' + @BackupPath + '''
|
||||||
|
WITH MOVE N''' + @SrcDB + ''' TO N''\\DOES-RAINVM-TST\E$\SQLData\' + @NewDB + '.mdf'',
|
||||||
|
MOVE N''' + @SrcDB + '_log'' TO N''\\DOES-RAINVM-TST\E$\SQLLogs\' + @NewDB + '_log.ldf'',
|
||||||
|
REPLACE, STATS = 10;
|
||||||
|
|
||||||
|
-- Set database back to multi-user
|
||||||
|
ALTER DATABASE [' + @NewDB + '] SET MULTI_USER;
|
||||||
|
';
|
||||||
|
|
||||||
|
-- Execute restore
|
||||||
|
EXEC(@SQL);
|
||||||
|
|
||||||
|
PRINT 'Database restored successfully as ' + @NewDB;
|
||||||
|
GO
|
||||||
12
SQLAgent/02_Test/6_Backup_Restore/RestoreSQLAgent.sql
Normal file
12
SQLAgent/02_Test/6_Backup_Restore/RestoreSQLAgent.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Connect to SQL Server
|
||||||
|
$ServerName = "DOES-DUTAS-SQL1"
|
||||||
|
$SqlInstance = "localhost" # or server instance name
|
||||||
|
|
||||||
|
# Execute each script
|
||||||
|
$ScriptFiles = Get-ChildItem -Path $ExtractPath -Filter *.sql
|
||||||
|
foreach ($file in $ScriptFiles) {
|
||||||
|
Write-Host "Restoring job from: $($file.FullName)"
|
||||||
|
sqlcmd -S $SqlInstance -i $file.FullName
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "All SQL Agent jobs restored successfully."
|
||||||
@ -6,14 +6,20 @@ USE ProdDUTASJobSchedule;
|
|||||||
GO
|
GO
|
||||||
|
|
||||||
-- Create the main control table
|
-- Create the main control table
|
||||||
CREATE TABLE dbo.JobControl (
|
CREATE TABLE dbo.JobControl
|
||||||
JobID INT IDENTITY(1,1) PRIMARY KEY,
|
(
|
||||||
JobName VARCHAR(50) NOT NULL UNIQUE,
|
JobID INT IDENTITY(1,1) NOT NULL,
|
||||||
ScheduledStartTime TIME NOT NULL,
|
JobName VARCHAR(50) NOT NULL,
|
||||||
SchedulerAction VARCHAR(10) NOT NULL CHECK (SchedulerAction IN ('CONTINUE', 'STOP')),
|
ScheduledStartTime TIME(7) NOT NULL,
|
||||||
IsActive BIT DEFAULT 1,
|
SchedulerAction VARCHAR(10) NOT NULL, -- STOP or CONTINUE
|
||||||
CreatedDate DATETIME DEFAULT GETDATE(),
|
IsActive BIT NOT NULL CONSTRAINT DF_JobControl_IsActive DEFAULT (1),
|
||||||
Frequency VARCHAR(20) NOT NULL
|
CreatedDate DATETIME NOT NULL CONSTRAINT DF_JobControl_CreatedDate DEFAULT (GETDATE()),
|
||||||
|
Frequency CHAR(20) NOT NULL CONSTRAINT DF_JobControl_Frequency DEFAULT ('DAILY'),
|
||||||
|
FrequencyPattern NVARCHAR(500) NULL, -- JSON scheduling rule
|
||||||
|
|
||||||
|
CONSTRAINT PK_JobControl PRIMARY KEY CLUSTERED (JobID ASC),
|
||||||
|
CONSTRAINT UQ_JobControl_JobName UNIQUE NONCLUSTERED (JobName ASC),
|
||||||
|
CONSTRAINT CK_JobControl_SchedulerAction CHECK (SchedulerAction IN ('STOP', 'CONTINUE'))
|
||||||
);
|
);
|
||||||
GO
|
GO
|
||||||
|
|
||||||
@ -61,3 +67,17 @@ CREATE TABLE dbo.JobExitCodes
|
|||||||
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
||||||
);
|
);
|
||||||
GO
|
GO
|
||||||
|
-- Create JobSchedule table
|
||||||
|
CREATE TABLE dbo.JobSchedule (
|
||||||
|
JobScheduleID INT IDENTITY(1,1) PRIMARY KEY,
|
||||||
|
JobName VARCHAR(100) NOT NULL,
|
||||||
|
Frequency VARCHAR(20) CHECK (Frequency IN ('Monthly','Quarterly')),
|
||||||
|
ScheduledRule NVARCHAR(500) NULL, -- Copy of JSON or rule text from JobControl
|
||||||
|
ScheduledDate DATE NOT NULL, -- Planned date (before adjustment)
|
||||||
|
AdjustedRunDate DATE NOT NULL, -- Final working-day adjusted date
|
||||||
|
MonthOfSchedule CHAR(7) NOT NULL, -- 'YYYY-MM'
|
||||||
|
YearOfSchedule INT NOT NULL,
|
||||||
|
CreatedOn DATETIME DEFAULT GETDATE(),
|
||||||
|
CreatedBy VARCHAR(50) DEFAULT SUSER_SNAME()
|
||||||
|
);
|
||||||
|
GO
|
||||||
@ -1,34 +1,29 @@
|
|||||||
USE ProdDUTASJobSchedule;
|
USE [ProdDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[FederalHolidays] ON
|
||||||
-- Clear existing data and insert 2025-2026 holidays (ignoring 0000000000 dates)
|
GO
|
||||||
INSERT INTO dbo.FederalHolidays (HolidayDate, HolidayName, Year) VALUES
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (1, CAST(N'2025-01-01' AS Date), N'New Years Day', 2025)
|
||||||
-- 2025 Holidays
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (2, CAST(N'2025-01-20' AS Date), N'Martin Luther King Day', 2025)
|
||||||
('2025-01-01', 'New Years Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (3, CAST(N'2025-02-17' AS Date), N'Presidents Day', 2025)
|
||||||
('2025-01-20', 'Martin Luther King Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (4, CAST(N'2025-05-26' AS Date), N'Memorial Day', 2025)
|
||||||
('2025-02-17', 'Presidents Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (5, CAST(N'2025-06-19' AS Date), N'Juneteenth Day', 2025)
|
||||||
('2025-05-26', 'Memorial Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (6, CAST(N'2025-07-04' AS Date), N'Independence Day', 2025)
|
||||||
('2025-06-19', 'Juneteenth Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (7, CAST(N'2025-09-01' AS Date), N'Labor Day', 2025)
|
||||||
('2025-07-04', 'Independence Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (8, CAST(N'2025-10-13' AS Date), N'Columbus Day', 2025)
|
||||||
('2025-09-01', 'Labor Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (9, CAST(N'2025-11-11' AS Date), N'Veterans Day', 2025)
|
||||||
('2025-10-13', 'Columbus Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (10, CAST(N'2025-11-27' AS Date), N'Thanksgiving Day', 2025)
|
||||||
('2025-11-11', 'Veterans Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (11, CAST(N'2025-12-25' AS Date), N'Christmas Day', 2025)
|
||||||
('2025-11-27', 'Thanksgiving Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (12, CAST(N'2026-01-01' AS Date), N'New Years Day', 2026)
|
||||||
('2025-12-25', 'Christmas Day', 2025),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (13, CAST(N'2026-01-19' AS Date), N'Martin Luther King Day', 2026)
|
||||||
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (14, CAST(N'2026-02-16' AS Date), N'Presidents Day', 2026)
|
||||||
-- 2026 Holidays
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (15, CAST(N'2026-05-25' AS Date), N'Memorial Day', 2026)
|
||||||
('2026-01-01', 'New Years Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (16, CAST(N'2026-06-19' AS Date), N'Juneteenth Day', 2026)
|
||||||
('2026-01-19', 'Martin Luther King Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (17, CAST(N'2026-07-03' AS Date), N'Independence Day', 2026)
|
||||||
('2026-02-16', 'Presidents Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (18, CAST(N'2026-09-07' AS Date), N'Labor Day', 2026)
|
||||||
('2026-05-25', 'Memorial Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (19, CAST(N'2026-10-12' AS Date), N'Columbus Day', 2026)
|
||||||
('2026-06-19', 'Juneteenth Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (20, CAST(N'2026-11-11' AS Date), N'Veterans Day', 2026)
|
||||||
('2026-07-03', 'Independence Day', 2026), -- Note: July 3rd observed since July 4th is Saturday
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (21, CAST(N'2026-11-26' AS Date), N'Thanksgiving Day', 2026)
|
||||||
('2026-09-07', 'Labor Day', 2026),
|
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (22, CAST(N'2026-12-25' AS Date), N'Christmas Day', 2026)
|
||||||
('2026-10-12', 'Columbus Day', 2026),
|
GO
|
||||||
('2026-11-11', 'Veterans Day', 2026),
|
SET IDENTITY_INSERT [dbo].[FederalHolidays] OFF
|
||||||
('2026-11-26', 'Thanksgiving Day', 2026),
|
|
||||||
('2026-12-25', 'Christmas Day', 2026);
|
|
||||||
GO
|
GO
|
||||||
|
|
||||||
-- Verify the data
|
|
||||||
SELECT * FROM dbo.FederalHolidays ORDER BY HolidayDate;
|
|
||||||
@ -1,79 +1,143 @@
|
|||||||
USE [ProdDUTASJobSchedule]
|
USE [ProdDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobControl] ON
|
||||||
INSERT INTO [dbo].[JobControl] (
|
GO
|
||||||
[JobName],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (1, N'PROD_DAILY_DTSBX215', CAST(N'04:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[ScheduledStartTime],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (2, N'PROD_DAILY_DTSBX305', CAST(N'04:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[SchedulerAction],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (3, N'PROD_DAILY_DTSGSID0', CAST(N'06:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[IsActive],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (4, N'PROD_DAILY_GSIRQ300', CAST(N'06:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[CreatedDate],
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (5, N'PROD_DAILY_DTSRQ202', CAST(N'06:10:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
[Frequency]
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (6, N'PROD_DAILY_DTSGSID1', CAST(N'06:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
)
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (7, N'PROD_DAILY_DTSBX202', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
VALUES
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (8, N'PROD_DAILY_DTSFT202', CAST(N'08:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX215', '4:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (9, N'PROD_DAILY_DTSBX432', CAST(N'08:30:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX305', '4:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (10, N'PROD_DAILY_DTSGACHD', CAST(N'09:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGSID0', '6:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (11, N'PROD_DAILY_DTSBX303', CAST(N'10:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_GSIRQ300', '6:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (12, N'PROD_DAILY_DTSGWAGE', CAST(N'14:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSRQ202', '6:10:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (13, N'PROD_DAILY_DTSGCHKS', CAST(N'14:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGSID1', '6:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (14, N'PROD_DAILY_DTSESDAY', CAST(N'14:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX202', '7:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (15, N'PROD_DAILY_DTSGPAYT', CAST(N'14:10:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSFT202', '8:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (16, N'PROD_DAILY_DTSDX145', CAST(N'16:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX432', '8:30:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (17, N'PROD_DAILY_DTSBX629', CAST(N'16:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGACHD', '9:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (18, N'PROD_DAILY_DTSBX630', CAST(N'16:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX303', '10:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (19, N'PROD_DAILY_DTSFRAUD', CAST(N'16:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGWAGE', '14:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (20, N'PROD_DAILY_DTSRACHD', CAST(N'17:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGCHKS', '14:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (21, N'PROD_DAILY_DTSBXACH', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSESDAY', '14:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (22, N'PROD_DAILY_DTSBXREG', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGPAYT', '14:10:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (23, N'PROD_DAILY_DTSBX430', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSDX145', '16:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (24, N'PROD_DAILY_DTSBX626', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX629', '16:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (25, N'PROD_DAILY_DTSBX530', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX630', '16:30:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (26, N'PROD_DAILY_DTSBXREL', CAST(N'17:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSFRAUD', '16:30:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (27, N'PROD_DAILY_DTSBX450', CAST(N'17:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSRACHD', '17:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (28, N'PROD_DAILY_DTSBX451', CAST(N'17:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBXACH', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (29, N'PROD_DAILY_DTSPACHD', CAST(N'18:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBXREG', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (30, N'PROD_DAILY_DTSPX148', CAST(N'18:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX430', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (31, N'PROD_DAILY_DTSRQ325', CAST(N'18:05:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX626', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (32, N'PROD_DAILY_DTSBX427', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX530', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (33, N'PROD_DAILY_DTSPDAY1', CAST(N'18:10:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBXREL', '17:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (34, N'PROD_DAILY_DTSW4WGE', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX450', '17:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (35, N'PROD_DAILY_DTSGSID2', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX451', '17:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (36, N'PROD_DAILY_DTSGSID9', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSPACHD', '18:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (37, N'PROD_DAILY_DTSMIN01', CAST(N'18:20:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSPX148', '18:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (38, N'PROD_DAILY_DTSMIN02', CAST(N'18:20:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSRQ325', '18:05:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (39, N'PROD_DAILY_DTSRQ459', CAST(N'19:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSBX427', '18:07:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (40, N'PROD_DAILY_DTSBXPFL', CAST(N'19:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSPDAY1', '18:10:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (41, N'PROD_DAILY_DESBD427', CAST(N'19:05:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSW4WGE', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (42, N'PROD_DAILY_DTSBX403', CAST(N'20:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGSID2', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (43, N'PROD_DAILY_DTSBE405', CAST(N'20:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSGSID9', '18:15:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (44, N'PROD_DAILY_DTSBX405', CAST(N'20:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSMIN01', '18:20:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (45, N'PROD_DAILY_DTSRQ335', CAST(N'21:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSMIN02', '18:20:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (46, N'PROD_DAILY_DTSBX601', CAST(N'21:25:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.470' AS DateTime), N'DAILY ', N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}')
|
||||||
('PROD_DAILY_DTSRQ459', '19:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (47, N'PROD_WEEKLY_DTSGSID0', CAST(N'06:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('PROD_DAILY_DTSBXPFL', '19:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (48, N'PROD_WEEKLY_DTSGSID1', CAST(N'06:15:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('PROD_DAILY_DESBD427', '19:05:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (49, N'PROD_WEEKLY_DTSBX202', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('PROD_DAILY_DTSBX403', '20:00:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (50, N'PROD_WEEKLY_DTSFT202', CAST(N'08:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Sat","Sun"]}')
|
||||||
('PROD_DAILY_DTSBE405', '20:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (51, N'PROD_WEEKLY_DTSBX470', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('PROD_DAILY_DTSBX405', '20:15:00', 'CONTINUE', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (52, N'PROD_WEEKLY_DTSBXREJ', CAST(N'17:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Tue","Fri"]}')
|
||||||
('PROD_DAILY_DTSRQ335', '21:00:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (53, N'PROD_WEEKLY_DTSPDAY7', CAST(N'19:10:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('PROD_DAILY_DTSBX601', '21:25:00', 'STOP', 1, GETDATE(), 'DAILY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (54, N'PROD_WEEKLY_DTSBX122', CAST(N'19:14:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('PROD_WEEKLY_DTSGSID0', '6:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (55, N'PROD_WEEKLY_DTSRQ511', CAST(N'19:14:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Fri"]}')
|
||||||
('PROD_WEEKLY_DTSGSID1', '6:15:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (56, N'PROD_WEEKLY_DTSRQ444', CAST(N'07:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Mon"]}')
|
||||||
('PROD_WEEKLY_DTSBX202', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (57, N'PROD_WEEKLY_DTSRQ126', CAST(N'09:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.487' AS DateTime), N'WEEKLY ', N'{"Frequency":"Weekly","Days":["Mon"]}')
|
||||||
('PROD_WEEKLY_DTSFT202', '8:00:00', 'STOP', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (58, N'PROD_MONTHLY_DTSRQ414', CAST(N'18:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"FirstWorkday"}')
|
||||||
('PROD_WEEKLY_DTSBX470', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (59, N'PROD_MONTHLY_DTSPMON1', CAST(N'19:15:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_WEEKLY_DTSBXREJ', '17:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (60, N'PROD_MONTHLY_DTSCHGVB', CAST(N'19:26:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_WEEKLY_DTSPDAY7', '19:10:00', 'STOP', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (61, N'PROD_MONTHLY_DTSCHGVR', CAST(N'19:27:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_WEEKLY_DTSBX122', '19:14:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (62, N'PROD_MONTHLY_DTSVBKUP', CAST(N'19:26:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_WEEKLY_DTSRQ511', '19:14:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (63, N'PROD_MONTHLY_DTSVRSTR', CAST(N'19:30:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_WEEKLY_DTSRQ444', '7:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (64, N'PROD_MONTHLY_DTSRQ442', CAST(N'19:37:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_WEEKLY_DTSRQ126', '9:00:00', 'CONTINUE', 1, GETDATE(), 'WEEKLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (65, N'PROD_MONTHLY_DTSBX460', CAST(N'19:35:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_MONTHLY_DTSRQ414', '18:15:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (66, N'PROD_MONTHLY_DTSRQ513', CAST(N'19:37:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"LastWorkday"}')
|
||||||
('PROD_MONTHLY_DTSPMON1', '19:15:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (67, N'PROD_MONTHLY_DTSCHGDC', CAST(N'13:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.493' AS DateTime), N'MONTHLY ', N'{"Frequency":"Monthly","Rule":"FirstWorkday"}')
|
||||||
('PROD_MONTHLY_DTSCHGVB', '19:26:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (68, N'PROD_QUARTERLY_DTSRQ119', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":3}')
|
||||||
('PROD_MONTHLY_DTSCHGVR', '19:27:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (69, N'PROD_QUARTERLY_DTSRQ902', CAST(N'18:16:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":1}')
|
||||||
('PROD_MONTHLY_DTSVBKUP', '19:26:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (70, N'PROD_QUARTERLY_DTSBX500', CAST(N'21:25:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Months":[3,6,9,12],"Day":1}')
|
||||||
('PROD_MONTHLY_DTSVRSTR', '19:30:00', 'STOP', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (71, N'PROD_QUARTERLY_DTSRQ417', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":28},{"Month":5,"Day":31},{"Month":8,"Day":31},{"Month":11,"Day":30}]}')
|
||||||
('PROD_MONTHLY_DTSRQ442', '19:37:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (72, N'PROD_QUARTERLY_DTSRQ320', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":10},{"Month":5,"Day":10},{"Month":8,"Day":10},{"Month":11,"Day":10}]}')
|
||||||
('PROD_MONTHLY_DTSBX460', '19:35:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (73, N'PROD_QUARTERLY_DTSRQ713', CAST(N'00:00:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":3,"Day":31},{"Month":6,"Day":30},{"Month":9,"Day":30},{"Month":12,"Day":31}]}')
|
||||||
('PROD_MONTHLY_DTSRQ513', '19:37:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY'),
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (74, N'PROD_QUARTERLY_DTSBX468', CAST(N'15:00:00' AS Time), N'CONTINUE', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":28},{"Month":5,"Day":30},{"Month":7,"Day":31},{"Month":10,"Day":30}]}')
|
||||||
('PROD_MONTHLY_DTSCHGDC', '13:00:00', 'CONTINUE', 0, GETDATE(), 'MONTHLY');
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (75, N'PROD_QUARTERLY_DTSCHGQ1', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Rule":"FirstWorkdayOfQuarter"}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (76, N'PROD_QUARTERLY_DTSCHGQ2', CAST(N'18:16:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Rule":"FirstWorkdayOfQuarter"}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (77, N'PROD_QUARTERLY_DTSRQ327', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":7},{"Month":5,"Day":7},{"Month":8,"Day":7},{"Month":11,"Day":7}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (78, N'PROD_QUARTERLY_DTSRQ328', CAST(N'18:16:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":2,"Day":7},{"Month":5,"Day":7},{"Month":8,"Day":7},{"Month":11,"Day":7}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (79, N'PROD_QUARTERLY_DTSRQ412', CAST(N'18:07:00' AS Time), N'STOP', 1, CAST(N'2025-10-16T12:59:40.503' AS DateTime), N'QUARTERLY ', N'{"Frequency":"Quarterly","Schedule":[{"Month":1,"Day":15},{"Month":4,"Day":15},{"Month":7,"Day":15},{"Month":10,"Day":15}]}')
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (80, N'PROD_QUARTERLY_DTSRQ793', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (81, N'PROD_QUARTERLY_DTSWGE06', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (82, N'PROD_QUARTERLY_DTSCHGRT', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (83, N'PROD_QUARTERLY_DTSCHRGS', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (84, N'PROD_QUARTERLY_DTSRQ540', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (85, N'PROD_QUARTERLY_DTSRQ591', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (86, N'PROD_QUARTERLY_DTSRTCHG', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (87, N'PROD_QUARTERLY_DTSWGE01', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (88, N'PROD_QUARTERLY_DESBD426', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (89, N'PROD_ONDEMAND_DTSACH01', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (90, N'PROD_ONDEMAND_DTSBX415', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (91, N'PROD_ONDEMAND_DTSBX452', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (92, N'PROD_ONDEMAND_DTSBX453', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (93, N'PROD_ONDEMAND_DTSRQ120', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (94, N'PROD_ONDEMAND_DTSRQ123', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (95, N'PROD_ONDEMAND_DTSRQ125', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (96, N'PROD_ONDEMAND_DTSRQ305', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (97, N'PROD_ONDEMAND_DTSRQ306', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (98, N'PROD_ONDEMAND_DTSRQ308', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (99, N'PROD_ONDEMAND_DTSRQ311', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (100, N'PROD_ONDEMAND_DTSRQ410', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (101, N'PROD_ONDEMAND_DTSRQ411', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (102, N'PROD_ONDEMAND_DTSRQ423', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (103, N'PROD_ONDEMAND_DTSRQ426', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (104, N'PROD_ONDEMAND_DTSRQ429', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (105, N'PROD_ONDEMAND_DTSRQ439', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (106, N'PROD_ONDEMAND_DTSRQ602', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (107, N'PROD_ONDEMAND_DTSRQ606', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (108, N'PROD_ONDEMAND_DTSRQ607', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (109, N'PROD_ONDEMAND_DTSRQ609', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (110, N'PROD_ONDEMAND_DTSRQ611', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (111, N'PROD_ONDEMAND_DTSRQ612', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (112, N'PROD_ONDEMAND_DTSRQ717', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (113, N'PROD_ONDEMAND_DTSRQ718', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (114, N'PROD_ONDEMAND_DTSRQ720', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (115, N'PROD_ONDEMAND_DTSRQ721', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (116, N'PROD_ONDEMAND_DTSRT715', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (117, N'PROD_ONDEMAND_DTSRT716', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (118, N'PROD_ONDEMAND_DTSRT717', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (119, N'PROD_ONDEMAND_DTSRT718', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (120, N'PROD_ONDEMAND_DTSRT719', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (121, N'PROD_ONDEMAND_DTSRT720', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (122, N'PROD_ONDEMAND_DTSRT722', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (123, N'PROD_ONDEMAND_DTSRT723', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.520' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (124, N'PROD_YEARLY_DTSRQ722', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (125, N'PROD_YEARLY_DTSRQ451', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (126, N'PROD_YEARLY_DTSRQ127', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (127, N'PROD_YEARLY_DTSRQ321', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (128, N'PROD_YEARLY_DTSRQ455', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (129, N'PROD_YEARLY_DTSRQ500', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (130, N'PROD_YEARLY_DTSRQ517', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (131, N'PROD_YEARLY_DTSRQ518', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (132, N'PROD_YEARLY_DTSRQ616', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (133, N'PROD_YEARLY_DTSRQ701', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (134, N'PROD_YEARLY_DTSRQ702', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (135, N'PROD_YEARLY_DTSRQ704', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
INSERT [dbo].[JobControl] ([JobID], [JobName], [ScheduledStartTime], [SchedulerAction], [IsActive], [CreatedDate], [Frequency], [FrequencyPattern]) VALUES (136, N'PROD_YEARLY_DTSRQ910', CAST(N'00:00:00' AS Time), N'STOP', 0, CAST(N'2025-10-16T12:59:40.530' AS DateTime), N'ONDEMAND ', NULL)
|
||||||
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobControl] OFF
|
||||||
|
GO
|
||||||
@ -1,80 +1,92 @@
|
|||||||
USE [ProdDUTASJobSchedule]
|
USE [ProdDUTASJobSchedule]
|
||||||
GO
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobDependencies] ON
|
||||||
TRUNCATE TABLE [dbo].[JobDependencies];
|
GO
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (1, N'PROD_DAILY_DTSGSID0', N'PROD_DAILY_DTSBX305')
|
||||||
INSERT INTO [dbo].[JobDependencies] (
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (2, N'PROD_DAILY_GSIRQ300', N'PROD_DAILY_DTSBX305')
|
||||||
[JobName],
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (3, N'PROD_DAILY_DTSRQ202', N'PROD_DAILY_GSIRQ300')
|
||||||
[PredecessorJobName]
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (4, N'PROD_DAILY_DTSGSID1', N'PROD_DAILY_GSIRQ300')
|
||||||
)
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (5, N'PROD_DAILY_DTSBX202', N'PROD_DAILY_GSIRQ300')
|
||||||
VALUES
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (6, N'PROD_DAILY_DTSFT202', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSGSID0','PROD_DAILY_DTSBX305'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (7, N'PROD_DAILY_DTSBX432', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_GSIRQ300','PROD_DAILY_DTSBX305'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (8, N'PROD_DAILY_DTSGACHD', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSRQ202','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (9, N'PROD_DAILY_DTSBX303', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSGSID1','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (10, N'PROD_DAILY_DTSGWAGE', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSBX202','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (11, N'PROD_DAILY_DTSGCHKS', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSFT202','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (12, N'PROD_DAILY_DTSESDAY', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSBX432','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (13, N'PROD_DAILY_DTSGPAYT', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSGACHD','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (14, N'PROD_DAILY_DTSDX145', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSBX303','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (15, N'PROD_DAILY_DTSBX629', N'PROD_DAILY_GSIRQ300')
|
||||||
('PROD_DAILY_DTSGWAGE','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (16, N'PROD_DAILY_DTSBX630', N'PROD_DAILY_DTSBX629')
|
||||||
('PROD_DAILY_DTSGCHKS','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (17, N'PROD_DAILY_DTSFRAUD', N'PROD_DAILY_DTSBX629')
|
||||||
('PROD_DAILY_DTSESDAY','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (18, N'PROD_DAILY_DTSRACHD', N'PROD_DAILY_DTSFRAUD')
|
||||||
('PROD_DAILY_DTSGPAYT','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (19, N'PROD_DAILY_DTSBXACH', N'PROD_DAILY_DTSFRAUD')
|
||||||
('PROD_DAILY_DTSDX145','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (20, N'PROD_DAILY_DTSBXREG', N'PROD_DAILY_DTSFRAUD')
|
||||||
('PROD_DAILY_DTSBX629','PROD_DAILY_GSIRQ300'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (21, N'PROD_DAILY_DTSBX430', N'PROD_DAILY_DTSFRAUD')
|
||||||
('PROD_DAILY_DTSBX630','PROD_DAILY_DTSBX629'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (22, N'PROD_DAILY_DTSBX626', N'PROD_DAILY_DTSFRAUD')
|
||||||
('PROD_DAILY_DTSFRAUD','PROD_DAILY_DTSBX629'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (23, N'PROD_DAILY_DTSBX530', N'PROD_DAILY_DTSFRAUD')
|
||||||
('PROD_DAILY_DTSRACHD','PROD_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (24, N'PROD_DAILY_DTSBXREL', N'PROD_DAILY_DTSFRAUD')
|
||||||
('PROD_DAILY_DTSBXACH','PROD_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (25, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBXACH')
|
||||||
('PROD_DAILY_DTSBXREG','PROD_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (26, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBXREG')
|
||||||
('PROD_DAILY_DTSBX430','PROD_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (27, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBX430')
|
||||||
('PROD_DAILY_DTSBX626','PROD_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (28, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBX626')
|
||||||
('PROD_DAILY_DTSBX530','PROD_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (29, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBX530')
|
||||||
('PROD_DAILY_DTSBXREL','PROD_DAILY_DTSFRAUD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (30, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBXREL')
|
||||||
('PROD_DAILY_DTSBX450','PROD_DAILY_DTSBXACH'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (31, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBXACH')
|
||||||
('PROD_DAILY_DTSBX450','PROD_DAILY_DTSBXREG'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (32, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBXREG')
|
||||||
('PROD_DAILY_DTSBX450','PROD_DAILY_DTSBX430'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (33, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBX430')
|
||||||
('PROD_DAILY_DTSBX450','PROD_DAILY_DTSBX626'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (34, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBX626')
|
||||||
('PROD_DAILY_DTSBX450','PROD_DAILY_DTSBX530'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (35, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBX530')
|
||||||
('PROD_DAILY_DTSBX450','PROD_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (36, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBXREL')
|
||||||
('PROD_DAILY_DTSBX451','PROD_DAILY_DTSBXACH'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (37, N'PROD_DAILY_DTSPACHD', N'PROD_DAILY_DTSBX450')
|
||||||
('PROD_DAILY_DTSBX451','PROD_DAILY_DTSBXREG'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (38, N'PROD_DAILY_DTSPACHD', N'PROD_DAILY_DTSBX451')
|
||||||
('PROD_DAILY_DTSBX451','PROD_DAILY_DTSBX430'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (39, N'PROD_DAILY_DTSPX148', N'PROD_DAILY_DTSPACHD')
|
||||||
('PROD_DAILY_DTSBX451','PROD_DAILY_DTSBX626'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (40, N'PROD_DAILY_DTSRQ325', N'PROD_DAILY_DTSPACHD')
|
||||||
('PROD_DAILY_DTSBX451','PROD_DAILY_DTSBX530'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (41, N'PROD_DAILY_DTSBX427', N'PROD_DAILY_DTSPX148')
|
||||||
('PROD_DAILY_DTSBX451','PROD_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (42, N'PROD_DAILY_DTSBX427', N'PROD_DAILY_DTSRQ325')
|
||||||
('PROD_DAILY_DTSPACHD','PROD_DAILY_DTSBX450'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (43, N'PROD_DAILY_DTSPDAY1', N'PROD_DAILY_DTSBX427')
|
||||||
('PROD_DAILY_DTSPACHD','PROD_DAILY_DTSBX451'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (44, N'PROD_DAILY_DTSW4WGE', N'PROD_DAILY_DTSPDAY1')
|
||||||
('PROD_DAILY_DTSPX148','PROD_DAILY_DTSPACHD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (45, N'PROD_DAILY_DTSGSID2', N'PROD_DAILY_DTSPDAY1')
|
||||||
('PROD_DAILY_DTSRQ325','PROD_DAILY_DTSPACHD'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (46, N'PROD_DAILY_DTSGSID9', N'PROD_DAILY_DTSPDAY1')
|
||||||
('PROD_DAILY_DTSBX427','PROD_DAILY_DTSPX148'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (47, N'PROD_DAILY_DTSMIN01', N'PROD_DAILY_DTSW4WGE')
|
||||||
('PROD_DAILY_DTSBX427','PROD_DAILY_DTSRQ325'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (48, N'PROD_DAILY_DTSMIN01', N'PROD_DAILY_DTSGSID2')
|
||||||
('PROD_DAILY_DTSPDAY1','PROD_DAILY_DTSBX427'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (49, N'PROD_DAILY_DTSMIN01', N'PROD_DAILY_DTSGSID9')
|
||||||
('PROD_DAILY_DTSW4WGE','PROD_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (50, N'PROD_DAILY_DTSMIN02', N'PROD_DAILY_DTSW4WGE')
|
||||||
('PROD_DAILY_DTSGSID2','PROD_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (51, N'PROD_DAILY_DTSMIN02', N'PROD_DAILY_DTSGSID2')
|
||||||
('PROD_DAILY_DTSGSID9','PROD_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (52, N'PROD_DAILY_DTSMIN02', N'PROD_DAILY_DTSGSID9')
|
||||||
('PROD_DAILY_DTSMIN01','PROD_DAILY_DTSW4WGE'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (53, N'PROD_DAILY_DTSRQ459', N'PROD_DAILY_DTSMIN01')
|
||||||
('PROD_DAILY_DTSMIN01','PROD_DAILY_DTSGSID2'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (54, N'PROD_DAILY_DTSRQ459', N'PROD_DAILY_DTSMIN02')
|
||||||
('PROD_DAILY_DTSMIN01','PROD_DAILY_DTSGSID9'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (55, N'PROD_DAILY_DTSBXPFL', N'PROD_DAILY_DTSRQ459')
|
||||||
('PROD_DAILY_DTSMIN02','PROD_DAILY_DTSW4WGE'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (56, N'PROD_DAILY_DESBD427', N'PROD_DAILY_DTSBXPFL')
|
||||||
('PROD_DAILY_DTSMIN02','PROD_DAILY_DTSGSID2'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (57, N'PROD_DAILY_DTSBX403', N'PROD_DAILY_DTSBXPFL')
|
||||||
('PROD_DAILY_DTSMIN02','PROD_DAILY_DTSGSID9'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (58, N'PROD_DAILY_DTSBE405', N'PROD_DAILY_DTSBXPFL')
|
||||||
('PROD_DAILY_DTSRQ459','PROD_DAILY_DTSMIN01'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (59, N'PROD_DAILY_DTSBX405', N'PROD_DAILY_DTSBXPFL')
|
||||||
('PROD_DAILY_DTSRQ459','PROD_DAILY_DTSMIN02'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (60, N'PROD_DAILY_DTSRQ335', N'PROD_DAILY_DTSBXPFL')
|
||||||
('PROD_DAILY_DTSBXPFL','PROD_DAILY_DTSRQ459'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (61, N'PROD_DAILY_DTSBX601', N'PROD_DAILY_DTSRQ335')
|
||||||
('PROD_DAILY_DESBD427','PROD_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (62, N'PROD_WEEKLY_DTSBXREJ', N'PROD_DAILY_DTSBXREL')
|
||||||
('PROD_DAILY_DTSBX403','PROD_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (63, N'PROD_WEEKLY_DTSBX122', N'PROD_WEEKLY_DTSPDAY7')
|
||||||
('PROD_DAILY_DTSBE405','PROD_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (64, N'PROD_WEEKLY_DTSRQ511', N'PROD_WEEKLY_DTSPDAY7')
|
||||||
('PROD_DAILY_DTSBX405','PROD_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (65, N'PROD_MONTHLY_DTSRQ414', N'PROD_DAILY_DTSPDAY1')
|
||||||
('PROD_DAILY_DTSRQ335','PROD_DAILY_DTSBXPFL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (66, N'PROD_MONTHLY_DTSCHGVB', N'PROD_MONTHLY_DTSPMON1')
|
||||||
('PROD_DAILY_DTSBX601','PROD_DAILY_DTSRQ335'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (67, N'PROD_MONTHLY_DTSCHGVR', N'PROD_MONTHLY_DTSCHGVB')
|
||||||
('PROD_WEEKLY_DTSBXREJ','PROD_DAILY_DTSBXREL'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (68, N'PROD_MONTHLY_DTSVBKUP', N'PROD_MONTHLY_DTSPMON1')
|
||||||
('PROD_WEEKLY_DTSBX122','PROD_WEEKLY_DTSPDAY7'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (69, N'PROD_MONTHLY_DTSVRSTR', N'PROD_MONTHLY_DTSVBKUP')
|
||||||
('PROD_WEEKLY_DTSRQ511','PROD_WEEKLY_DTSPDAY7'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (70, N'PROD_MONTHLY_DTSRQ442', N'PROD_MONTHLY_DTSRQ513')
|
||||||
('PROD_MONTHLY_DTSRQ414','PROD_DAILY_DTSPDAY1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (71, N'PROD_QUARTERLY_DTSRQ119', N'PROD_DAILY_DTSRQ325')
|
||||||
('PROD_MONTHLY_DTSCHGVB','PROD_MONTHLY_DTSPMON1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (72, N'PROD_QUARTERLY_DTSRQ417', N'PROD_DAILY_DTSRQ325')
|
||||||
('PROD_MONTHLY_DTSCHGVR','PROD_MONTHLY_DTSCHGVB'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (73, N'PROD_QUARTERLY_DTSRQ320', N'PROD_DAILY_DTSRQ325')
|
||||||
('PROD_MONTHLY_DTSVBKUP','PROD_MONTHLY_DTSPMON1'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (74, N'PROD_QUARTERLY_DTSRQ793', N'PROD_DAILY_DTSRQ325')
|
||||||
('PROD_MONTHLY_DTSVRSTR','PROD_MONTHLY_DTSVBKUP'),
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (75, N'PROD_QUARTERLY_DTSCHGQ1', N'PROD_DAILY_DTSRQ325')
|
||||||
('PROD_MONTHLY_DTSRQ442','PROD_MONTHLY_DTSRQ513');
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (76, N'PROD_QUARTERLY_DTSRQ327', N'PROD_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (77, N'PROD_QUARTERLY_DTSRQ412', N'PROD_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (78, N'PROD_QUARTERLY_DTSRQ591', N'PROD_DAILY_DTSRQ325')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (79, N'PROD_QUARTERLY_DTSRQ902', N'PROD_DAILY_DTSPDAY1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (80, N'PROD_QUARTERLY_DTSCHGQ2', N'PROD_DAILY_DTSPDAY1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (81, N'PROD_QUARTERLY_DTSCHGRT', N'PROD_QUARTERLY_DTSRQ591')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (82, N'PROD_QUARTERLY_DTSRQ328', N'PROD_QUARTERLY_DTSRQ327')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (83, N'PROD_QUARTERLY_DTSBX500', N'PROD_QUARTERLY_DTSRQ417')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (84, N'PROD_QUARTERLY_DTSRQ713', N'PROD_MONTHLY_DTSPMON1')
|
||||||
|
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (85, N'PROD_QUARTERLY_DTSCHRGS', N'PROD_QUARTERLY_DTSCHGRT')
|
||||||
|
GO
|
||||||
|
SET IDENTITY_INSERT [dbo].[JobDependencies] OFF
|
||||||
|
GO
|
||||||
|
|||||||
17
SQLAgent/03_Prod/2_Functions/fn_GetNextWorkday.sql
Normal file
17
SQLAgent/03_Prod/2_Functions/fn_GetNextWorkday.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
USE ProdDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
-- Returns the next valid workday on or after the given date
|
||||||
|
CREATE OR ALTER FUNCTION dbo.fn_GetNextWorkday (@InputDate DATE)
|
||||||
|
RETURNS DATE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @Workday DATE = @InputDate;
|
||||||
|
|
||||||
|
WHILE DATENAME(WEEKDAY, @Workday) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = @Workday)
|
||||||
|
BEGIN
|
||||||
|
SET @Workday = DATEADD(DAY, 1, @Workday);
|
||||||
|
END
|
||||||
|
|
||||||
|
RETURN @Workday;
|
||||||
|
END;
|
||||||
17
SQLAgent/03_Prod/2_Functions/fn_GetPreviousWorkday.sql
Normal file
17
SQLAgent/03_Prod/2_Functions/fn_GetPreviousWorkday.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
USE ProdDUTASJobSchedule;
|
||||||
|
GO
|
||||||
|
-- Returns the most recent valid workday before or equal to the given date
|
||||||
|
CREATE OR ALTER FUNCTION dbo.fn_GetPreviousWorkday (@InputDate DATE)
|
||||||
|
RETURNS DATE
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @Workday DATE = @InputDate;
|
||||||
|
|
||||||
|
WHILE DATENAME(WEEKDAY, @Workday) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = @Workday)
|
||||||
|
BEGIN
|
||||||
|
SET @Workday = DATEADD(DAY, -1, @Workday);
|
||||||
|
END
|
||||||
|
|
||||||
|
RETURN @Workday;
|
||||||
|
END;
|
||||||
BIN
SQLAgent/03_Prod/3_Stored_Procedures/usp_CheckJobConditions.sql
Normal file
BIN
SQLAgent/03_Prod/3_Stored_Procedures/usp_CheckJobConditions.sql
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1,98 @@
|
|||||||
|
USE msdb;
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_CreateDailyJobSchedule
|
||||||
|
@Env VARCHAR(10) = 'DEVL' -- Added parameter with default value
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobID INT,
|
||||||
|
@JobName SYSNAME,
|
||||||
|
@ScheduledStartTime TIME(0),
|
||||||
|
@Frequency NVARCHAR(20),
|
||||||
|
@FrequencyPattern NVARCHAR(MAX),
|
||||||
|
@ScheduleName SYSNAME,
|
||||||
|
@StartTimeInt INT,
|
||||||
|
@FreqInterval INT,
|
||||||
|
@TimeString VARCHAR(8),
|
||||||
|
@ActiveStartDate INT,
|
||||||
|
@dbName SYSNAME; -- Added variable for database name
|
||||||
|
|
||||||
|
-- Determine database name based on environment
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Prepare active start date as INT (YYYYMMDD)
|
||||||
|
SET @ActiveStartDate = CONVERT(INT, CONVERT(CHAR(8), GETDATE(), 112));
|
||||||
|
|
||||||
|
-- Dynamic SQL to fetch jobs from the appropriate database
|
||||||
|
DECLARE @Sql NVARCHAR(MAX);
|
||||||
|
SET @Sql = N'
|
||||||
|
DECLARE job_cursor CURSOR FOR
|
||||||
|
SELECT JobID, JobName, ScheduledStartTime, Frequency, FrequencyPattern
|
||||||
|
FROM ' + QUOTENAME(@dbName) + N'.dbo.JobControl
|
||||||
|
WHERE UPPER(Frequency) = ''DAILY''
|
||||||
|
AND IsActive = 1;';
|
||||||
|
|
||||||
|
-- Execute dynamic SQL to declare cursor
|
||||||
|
EXEC sp_executesql @Sql;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobID, @JobName, @ScheduledStartTime, @Frequency, @FrequencyPattern;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
-- Step 1: Convert ScheduledStartTime (TIME) to HH:MM:SS string
|
||||||
|
SET @TimeString = CONVERT(VARCHAR(8), @ScheduledStartTime, 108);
|
||||||
|
|
||||||
|
-- Step 2: Remove colons and convert to INT (HHMMSS)
|
||||||
|
SET @StartTimeInt = CONVERT(INT, REPLACE(@TimeString, ':', ''));
|
||||||
|
|
||||||
|
-- Step 3: Prepare schedule name
|
||||||
|
SET @ScheduleName = CONCAT(@JobName, '_DailySchedule');
|
||||||
|
|
||||||
|
-- Step 4: Fixed freq_interval for Monday to Friday
|
||||||
|
SET @FreqInterval = 62; -- Mon(2)+Tue(4)+Wed(8)+Thu(16)+Fri(32) = 62
|
||||||
|
|
||||||
|
-- Step 5: Delete existing schedule if it exists (idempotency)
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM msdb.dbo.sysschedules s
|
||||||
|
JOIN msdb.dbo.sysjobschedules js ON s.schedule_id = js.schedule_id
|
||||||
|
JOIN msdb.dbo.sysjobs j ON j.job_id = js.job_id
|
||||||
|
WHERE j.name = @JobName AND s.name = @ScheduleName
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule @schedule_name = @ScheduleName;
|
||||||
|
END
|
||||||
|
|
||||||
|
-- Step 6: Create weekly schedule (Monday to Friday) running once per day
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 8, -- weekly
|
||||||
|
@freq_interval = @FreqInterval,
|
||||||
|
@freq_recurrence_factor = 1, -- every week
|
||||||
|
@active_start_time = @StartTimeInt,
|
||||||
|
@active_start_date = @ActiveStartDate;
|
||||||
|
|
||||||
|
-- Step 7: Attach schedule to job
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
-- Fetch next job
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobID, @JobName, @ScheduledStartTime, @Frequency, @FrequencyPattern;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
|
||||||
|
PRINT 'Daily job schedules (Monday to Friday) created successfully for ' + @dbName;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
BIN
SQLAgent/03_Prod/3_Stored_Procedures/usp_CreateSQLAgentJob.sql
Normal file
BIN
SQLAgent/03_Prod/3_Stored_Procedures/usp_CreateSQLAgentJob.sql
Normal file
Binary file not shown.
@ -0,0 +1,223 @@
|
|||||||
|
USE [msdb];
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_CreateWeeklySchedules
|
||||||
|
@Env VARCHAR(10) = 'DEVL' -- Added parameter with default value
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobName SYSNAME,
|
||||||
|
@FrequencyPattern NVARCHAR(MAX),
|
||||||
|
@StartTime VARCHAR(50),
|
||||||
|
@ScheduleName SYSNAME,
|
||||||
|
@StartTimeInt INT,
|
||||||
|
@FreqInterval INT,
|
||||||
|
@ActiveDate INT,
|
||||||
|
@computedFreq INT,
|
||||||
|
@dbName SYSNAME; -- Added variable for database name
|
||||||
|
|
||||||
|
-- Determine database name based on environment
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
SET @ActiveDate = CONVERT(INT, CONVERT(CHAR(8), GETDATE(), 112));
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
-- Dynamic SQL for cursor to fetch active weekly jobs from appropriate database
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
DECLARE @Sql NVARCHAR(MAX);
|
||||||
|
SET @Sql = N'
|
||||||
|
DECLARE job_cursor CURSOR FAST_FORWARD FOR
|
||||||
|
SELECT
|
||||||
|
JobName,
|
||||||
|
FrequencyPattern,
|
||||||
|
ScheduledStartTime
|
||||||
|
FROM ' + QUOTENAME(@dbName) + N'.dbo.JobControl
|
||||||
|
WHERE UPPER(Frequency) = ''WEEKLY''
|
||||||
|
AND IsActive = 1;';
|
||||||
|
|
||||||
|
-- Execute dynamic SQL to declare cursor
|
||||||
|
EXEC sp_executesql @Sql;
|
||||||
|
|
||||||
|
OPEN job_cursor;
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
BEGIN TRY
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Reset per-job variables
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SET @FreqInterval = 0;
|
||||||
|
SET @computedFreq = 0;
|
||||||
|
SET @StartTimeInt = NULL;
|
||||||
|
SET @ScheduleName = NULL;
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Correctly format the start time (HHMMSS without extra zeros)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SET @StartTime = LTRIM(RTRIM(ISNULL(@StartTime, '00:00:00')));
|
||||||
|
|
||||||
|
-- Parse time and convert to HHMMSS integer
|
||||||
|
DECLARE @TimeParts TABLE (part NVARCHAR(10), idx INT);
|
||||||
|
INSERT INTO @TimeParts (part, idx)
|
||||||
|
SELECT value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) - 1
|
||||||
|
FROM STRING_SPLIT(LEFT(@StartTime, 8), ':');
|
||||||
|
|
||||||
|
DECLARE @Hours INT, @Minutes INT, @Seconds INT;
|
||||||
|
|
||||||
|
SELECT @Hours = CAST(part AS INT) FROM @TimeParts WHERE idx = 0;
|
||||||
|
SELECT @Minutes = CAST(part AS INT) FROM @TimeParts WHERE idx = 1;
|
||||||
|
SELECT @Seconds = CAST(part AS INT) FROM @TimeParts WHERE idx = 2;
|
||||||
|
|
||||||
|
-- Ensure valid time ranges
|
||||||
|
SET @Hours = ISNULL(@Hours, 0);
|
||||||
|
SET @Minutes = ISNULL(@Minutes, 0);
|
||||||
|
SET @Seconds = ISNULL(@Seconds, 0);
|
||||||
|
|
||||||
|
IF @Hours < 0 OR @Hours > 23 SET @Hours = 0;
|
||||||
|
IF @Minutes < 0 OR @Minutes > 59 SET @Minutes = 0;
|
||||||
|
IF @Seconds < 0 OR @Seconds > 59 SET @Seconds = 0;
|
||||||
|
|
||||||
|
SET @StartTimeInt = (@Hours * 10000) + (@Minutes * 100) + @Seconds;
|
||||||
|
|
||||||
|
SET @ScheduleName = CONCAT(@JobName, '_WeeklySchedule');
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Parse JSON days using a local temporary table
|
||||||
|
------------------------------------------------------------------
|
||||||
|
CREATE TABLE #Days (DayName NVARCHAR(10));
|
||||||
|
|
||||||
|
INSERT INTO #Days (DayName)
|
||||||
|
SELECT TRIM(value)
|
||||||
|
FROM OPENJSON(ISNULL(@FrequencyPattern, '{}'), '$.Days');
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Compute bitmask correctly (values should be 1-127)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
SELECT @computedFreq = ISNULL(SUM(
|
||||||
|
CASE UPPER(DayName)
|
||||||
|
WHEN 'SUN' THEN 1
|
||||||
|
WHEN 'MON' THEN 2
|
||||||
|
WHEN 'TUE' THEN 4
|
||||||
|
WHEN 'WED' THEN 8
|
||||||
|
WHEN 'THU' THEN 16
|
||||||
|
WHEN 'FRI' THEN 32
|
||||||
|
WHEN 'SAT' THEN 64
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
), 0)
|
||||||
|
FROM #Days;
|
||||||
|
|
||||||
|
DROP TABLE #Days; -- Explicitly drop the temp table
|
||||||
|
|
||||||
|
SET @FreqInterval = ISNULL(@computedFreq, 0);
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Validate freq_interval (must be 1..127)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
IF @FreqInterval < 1 OR @FreqInterval > 127
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Warning: Weekly job ' + @JobName +
|
||||||
|
' has invalid freq_interval (' + ISNULL(CAST(@FreqInterval AS VARCHAR(10)), 'NULL') +
|
||||||
|
'). Days found: ' + ISNULL(@FrequencyPattern, 'None') + '. Skipping.';
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
CONTINUE;
|
||||||
|
END
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Debug output to verify calculations
|
||||||
|
------------------------------------------------------------------
|
||||||
|
PRINT 'Job: ' + @JobName +
|
||||||
|
', Days: ' + @FrequencyPattern +
|
||||||
|
', FreqInterval: ' + CAST(@FreqInterval AS VARCHAR(3)) +
|
||||||
|
', StartTime: ' + CAST(@StartTimeInt AS VARCHAR(6));
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Safely detach and delete any existing schedule with this name
|
||||||
|
-- Use TRY/CATCH for schedule operations since non-existence is expected
|
||||||
|
------------------------------------------------------------------
|
||||||
|
BEGIN TRY
|
||||||
|
DECLARE @schedule_id INT;
|
||||||
|
DECLARE @attach_count INT;
|
||||||
|
|
||||||
|
-- Check if schedule exists and get its ID
|
||||||
|
SELECT @schedule_id = s.schedule_id
|
||||||
|
FROM msdb.dbo.sysschedules s
|
||||||
|
JOIN msdb.dbo.sysjobschedules js ON s.schedule_id = js.schedule_id
|
||||||
|
JOIN msdb.dbo.sysjobs j ON j.job_id = js.job_id
|
||||||
|
WHERE j.name = @JobName AND s.name = @ScheduleName;
|
||||||
|
|
||||||
|
IF @schedule_id IS NOT NULL
|
||||||
|
BEGIN
|
||||||
|
-- Detach from this job (if attached)
|
||||||
|
EXEC msdb.dbo.sp_detach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
-- Check if schedule still attached to other jobs
|
||||||
|
SELECT @attach_count = COUNT(*)
|
||||||
|
FROM msdb.dbo.sysjobschedules js
|
||||||
|
WHERE js.schedule_id = @schedule_id;
|
||||||
|
|
||||||
|
IF @attach_count = 0
|
||||||
|
BEGIN
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
PRINT 'Existing schedule deleted: ' + @ScheduleName;
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Notice: schedule ' + @ScheduleName + ' could not be deleted because it is still attached to other jobs.';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
-- Schedule operations might fail if schedule doesn't exist, which is fine
|
||||||
|
PRINT 'Notice: ' + ERROR_MESSAGE() + ' - proceeding with new schedule creation.';
|
||||||
|
END CATCH
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Create the unified weekly schedule with subday config
|
||||||
|
------------------------------------------------------------------
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 8, -- Weekly
|
||||||
|
@freq_interval = @FreqInterval, -- Bitmask of weekdays
|
||||||
|
@freq_recurrence_factor = 1, -- Every week
|
||||||
|
@freq_subday_type = 1, -- Once per day
|
||||||
|
@freq_subday_interval = 1,
|
||||||
|
@active_start_time = @StartTimeInt,
|
||||||
|
@active_start_date = @ActiveDate;
|
||||||
|
|
||||||
|
------------------------------------------------------------------
|
||||||
|
-- Attach the schedule to the job
|
||||||
|
------------------------------------------------------------------
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_name = @JobName,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
PRINT 'Weekly schedule created for job: ' + @JobName +
|
||||||
|
' (Days=' + CAST(@FreqInterval AS VARCHAR(10)) +
|
||||||
|
', Time=' + RIGHT('000000' + CAST(@StartTimeInt AS VARCHAR(6)), 6) + ')';
|
||||||
|
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
PRINT 'Error scheduling job ' + ISNULL(@JobName, 'Unknown') + ': ' + ERROR_MESSAGE();
|
||||||
|
END CATCH;
|
||||||
|
|
||||||
|
FETCH NEXT FROM job_cursor INTO @JobName, @FrequencyPattern, @StartTime;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE job_cursor;
|
||||||
|
DEALLOCATE job_cursor;
|
||||||
|
|
||||||
|
PRINT 'All weekly job schedules processed for ' + @dbName;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
BIN
SQLAgent/03_Prod/3_Stored_Procedures/usp_ForceComplete.sql
Normal file
BIN
SQLAgent/03_Prod/3_Stored_Procedures/usp_ForceComplete.sql
Normal file
Binary file not shown.
261
SQLAgent/03_Prod/3_Stored_Procedures/usp_GenerateJobSchedule.sql
Normal file
261
SQLAgent/03_Prod/3_Stored_Procedures/usp_GenerateJobSchedule.sql
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
USE [ProdDUTASJobSchedule];
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE dbo.usp_GenerateJobSchedule
|
||||||
|
@Year INT
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 1. Cleanup existing schedule data for this year
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DELETE FROM dbo.JobSchedule WHERE YearOfSchedule = @Year;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 2. Variable declarations
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DECLARE
|
||||||
|
@JobName VARCHAR(100),
|
||||||
|
@Frequency VARCHAR(20),
|
||||||
|
@Pattern NVARCHAR(2000),
|
||||||
|
@ScheduledTime TIME,
|
||||||
|
@RuleName NVARCHAR(100),
|
||||||
|
@Month INT,
|
||||||
|
@BaseDate DATE,
|
||||||
|
@ScheduledDate DATE,
|
||||||
|
@AdjustedDate DATE,
|
||||||
|
@FailSafeDate DATE = '9999-12-31';
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 3. Temporary table to process jobs more efficiently
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
CREATE TABLE #JobProcessing (
|
||||||
|
JobName VARCHAR(100),
|
||||||
|
Frequency VARCHAR(20),
|
||||||
|
Pattern NVARCHAR(2000),
|
||||||
|
ScheduledTime TIME,
|
||||||
|
RuleName NVARCHAR(100),
|
||||||
|
MonthsJSON NVARCHAR(MAX),
|
||||||
|
DayNum INT,
|
||||||
|
HasExplicitSchedule BIT
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Populate temporary table with parsed JSON data
|
||||||
|
INSERT INTO #JobProcessing (JobName, Frequency, Pattern, ScheduledTime, RuleName, MonthsJSON, DayNum, HasExplicitSchedule)
|
||||||
|
SELECT
|
||||||
|
jc.JobName,
|
||||||
|
jc.Frequency,
|
||||||
|
jc.FrequencyPattern,
|
||||||
|
jc.ScheduledStartTime,
|
||||||
|
JSON_VALUE(jc.FrequencyPattern, '$.Rule'),
|
||||||
|
JSON_QUERY(jc.FrequencyPattern, '$.Months'),
|
||||||
|
JSON_VALUE(jc.FrequencyPattern, '$.Day'),
|
||||||
|
CASE WHEN JSON_QUERY(jc.FrequencyPattern, '$.Schedule') IS NOT NULL THEN 1 ELSE 0 END
|
||||||
|
FROM dbo.JobControl jc
|
||||||
|
WHERE UPPER(jc.Frequency) IN ('MONTHLY','QUARTERLY')
|
||||||
|
AND jc.IsActive = 1;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 4. Process MONTHLY jobs
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
CASE
|
||||||
|
WHEN jp.RuleName = 'FirstWorkday' THEN dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, m.MonthNum, 1))
|
||||||
|
WHEN jp.RuleName = 'LastWorkday' THEN dbo.fn_GetPreviousWorkday(EOMONTH(DATEFROMPARTS(@Year, m.MonthNum, 1)))
|
||||||
|
ELSE @FailSafeDate
|
||||||
|
END AS ScheduledDate,
|
||||||
|
CASE
|
||||||
|
WHEN jp.RuleName = 'FirstWorkday' THEN dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, m.MonthNum, 1))
|
||||||
|
WHEN jp.RuleName = 'LastWorkday' THEN dbo.fn_GetPreviousWorkday(EOMONTH(DATEFROMPARTS(@Year, m.MonthNum, 1)))
|
||||||
|
ELSE @FailSafeDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, m.MonthNum, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) m(MonthNum)
|
||||||
|
WHERE jp.Frequency = 'MONTHLY'
|
||||||
|
AND jp.RuleName IN ('FirstWorkday', 'LastWorkday');
|
||||||
|
|
||||||
|
-- Handle monthly jobs with unknown rules
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
@FailSafeDate,
|
||||||
|
@FailSafeDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, m.MonthNum, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) m(MonthNum)
|
||||||
|
WHERE jp.Frequency = 'MONTHLY'
|
||||||
|
AND jp.RuleName NOT IN ('FirstWorkday', 'LastWorkday');
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 5. Process QUARTERLY jobs - FirstWorkdayOfQuarter
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, q.StartMonth, 1)),
|
||||||
|
dbo.fn_GetNextWorkday(DATEFROMPARTS(@Year, q.StartMonth, 1)),
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, q.StartMonth, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS JOIN (VALUES (1),(4),(7),(10)) q(StartMonth)
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.RuleName = 'FirstWorkdayOfQuarter';
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 6. Process QUARTERLY jobs - Months array with Day number
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
;WITH QuarterlyMonths AS (
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
CAST(m.[value] AS INT) AS MonthNum,
|
||||||
|
jp.DayNum
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS APPLY OPENJSON(jp.MonthsJSON) m
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.MonthsJSON IS NOT NULL
|
||||||
|
AND jp.DayNum IS NOT NULL
|
||||||
|
AND jp.RuleName IS NULL
|
||||||
|
AND jp.HasExplicitSchedule = 0
|
||||||
|
),
|
||||||
|
QuarterlyDates AS (
|
||||||
|
SELECT
|
||||||
|
qm.JobName,
|
||||||
|
qm.Frequency,
|
||||||
|
qm.Pattern,
|
||||||
|
qm.MonthNum,
|
||||||
|
qm.DayNum,
|
||||||
|
CASE
|
||||||
|
WHEN qm.DayNum <= DAY(EOMONTH(DATEFROMPARTS(@Year, qm.MonthNum, 1)))
|
||||||
|
THEN DATEFROMPARTS(@Year, qm.MonthNum, qm.DayNum)
|
||||||
|
ELSE EOMONTH(DATEFROMPARTS(@Year, qm.MonthNum, 1))
|
||||||
|
END AS BaseDate
|
||||||
|
FROM QuarterlyMonths qm
|
||||||
|
)
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
qd.JobName,
|
||||||
|
qd.Frequency,
|
||||||
|
qd.Pattern,
|
||||||
|
qd.BaseDate,
|
||||||
|
CASE
|
||||||
|
WHEN DATENAME(WEEKDAY, qd.BaseDate) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = qd.BaseDate)
|
||||||
|
THEN dbo.fn_GetPreviousWorkday(qd.BaseDate)
|
||||||
|
ELSE qd.BaseDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(qd.BaseDate, 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM QuarterlyDates qd;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 7. Process QUARTERLY jobs - Explicit Schedule array
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
;WITH ExplicitSchedules AS (
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
s.[Month] AS MonthNum,
|
||||||
|
s.[Day] AS DayNum
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
CROSS APPLY OPENJSON(jp.Pattern, '$.Schedule')
|
||||||
|
WITH (
|
||||||
|
[Month] INT '$.Month',
|
||||||
|
[Day] INT '$.Day'
|
||||||
|
) s
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND jp.HasExplicitSchedule = 1
|
||||||
|
),
|
||||||
|
ExplicitScheduleDates AS (
|
||||||
|
SELECT
|
||||||
|
es.JobName,
|
||||||
|
es.Frequency,
|
||||||
|
es.Pattern,
|
||||||
|
es.MonthNum,
|
||||||
|
es.DayNum,
|
||||||
|
CASE
|
||||||
|
WHEN es.DayNum <= DAY(EOMONTH(DATEFROMPARTS(@Year, es.MonthNum, 1)))
|
||||||
|
THEN DATEFROMPARTS(@Year, es.MonthNum, es.DayNum)
|
||||||
|
ELSE EOMONTH(DATEFROMPARTS(@Year, es.MonthNum, 1))
|
||||||
|
END AS BaseDate
|
||||||
|
FROM ExplicitSchedules es
|
||||||
|
)
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
esd.JobName,
|
||||||
|
esd.Frequency,
|
||||||
|
esd.Pattern,
|
||||||
|
esd.BaseDate,
|
||||||
|
CASE
|
||||||
|
WHEN DATENAME(WEEKDAY, esd.BaseDate) IN ('Saturday','Sunday')
|
||||||
|
OR EXISTS (SELECT 1 FROM dbo.FederalHolidays WHERE HolidayDate = esd.BaseDate)
|
||||||
|
THEN dbo.fn_GetPreviousWorkday(esd.BaseDate)
|
||||||
|
ELSE esd.BaseDate
|
||||||
|
END AS AdjustedRunDate,
|
||||||
|
FORMAT(esd.BaseDate, 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM ExplicitScheduleDates esd;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 8. Handle any quarterly jobs that didn't match the patterns above
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
INSERT INTO dbo.JobSchedule (JobName, Frequency, ScheduledRule, ScheduledDate, AdjustedRunDate, MonthOfSchedule, YearOfSchedule, CreatedOn, CreatedBy)
|
||||||
|
SELECT
|
||||||
|
jp.JobName,
|
||||||
|
jp.Frequency,
|
||||||
|
jp.Pattern,
|
||||||
|
@FailSafeDate,
|
||||||
|
@FailSafeDate,
|
||||||
|
FORMAT(DATEFROMPARTS(@Year, 1, 1), 'yyyy-MM'),
|
||||||
|
@Year,
|
||||||
|
GETDATE(),
|
||||||
|
SYSTEM_USER
|
||||||
|
FROM #JobProcessing jp
|
||||||
|
WHERE jp.Frequency = 'QUARTERLY'
|
||||||
|
AND NOT EXISTS (
|
||||||
|
SELECT 1 FROM dbo.JobSchedule js
|
||||||
|
WHERE js.JobName = jp.JobName AND js.YearOfSchedule = @Year
|
||||||
|
);
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
-- 9. Cleanup and output
|
||||||
|
-------------------------------------------------------------------------
|
||||||
|
DROP TABLE #JobProcessing;
|
||||||
|
|
||||||
|
-- Update any NULL dates to fail-safe date
|
||||||
|
UPDATE dbo.JobSchedule
|
||||||
|
SET ScheduledDate = @FailSafeDate,
|
||||||
|
AdjustedRunDate = @FailSafeDate
|
||||||
|
WHERE YearOfSchedule = @Year
|
||||||
|
AND (ScheduledDate IS NULL OR AdjustedRunDate IS NULL);
|
||||||
|
|
||||||
|
DECLARE @RecordCount INT = (SELECT COUNT(*) FROM dbo.JobSchedule WHERE YearOfSchedule = @Year);
|
||||||
|
|
||||||
|
PRINT 'Job schedule generation completed for year ' + CAST(@Year AS VARCHAR(4)) +
|
||||||
|
'. Total records created: ' + CAST(@RecordCount AS VARCHAR(10));
|
||||||
|
END;
|
||||||
|
GO
|
||||||
160
SQLAgent/03_Prod/3_Stored_Procedures/usp_ScheduleJob.sql
Normal file
160
SQLAgent/03_Prod/3_Stored_Procedures/usp_ScheduleJob.sql
Normal file
@ -0,0 +1,160 @@
|
|||||||
|
USE [msdb]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: StoredProcedure [dbo].[usp_ScheduleJob] Script Date: 10/18/2025 9:52:04 AM ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR ALTER PROCEDURE [dbo].[usp_ScheduleJob]
|
||||||
|
@JobName NVARCHAR(100),
|
||||||
|
@Env CHAR(4), -- 'DEVL' | 'TEST' | 'PROD'
|
||||||
|
@RunDate DATE,
|
||||||
|
@RunTime TIME
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
@JobId UNIQUEIDENTIFIER,
|
||||||
|
@ScheduleName NVARCHAR(200),
|
||||||
|
@dbName NVARCHAR(128),
|
||||||
|
@ActiveStartDate INT,
|
||||||
|
@ActiveStartTime INT,
|
||||||
|
@Sql NVARCHAR(MAX),
|
||||||
|
@JobExists BIT = 0,
|
||||||
|
@ScheduleId INT;
|
||||||
|
|
||||||
|
-- Table variable must be declared separately and at the top level
|
||||||
|
DECLARE @ExistingSchedules TABLE (
|
||||||
|
schedule_id INT,
|
||||||
|
schedule_name NVARCHAR(200)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Map environment to actual DB name
|
||||||
|
SET @dbName = CASE @Env
|
||||||
|
WHEN 'DEVL' THEN 'DevlDUTASJobSchedule'
|
||||||
|
WHEN 'TEST' THEN 'TestDUTASJobSchedule'
|
||||||
|
WHEN 'PROD' THEN 'ProdDUTASJobSchedule'
|
||||||
|
ELSE 'DevlDUTASJobSchedule'
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Validate parameters
|
||||||
|
IF @Env NOT IN ('DEVL','TEST','PROD')
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('Env must be one of: DEVL, TEST, PROD.', 16, 1);
|
||||||
|
RETURN;
|
||||||
|
END
|
||||||
|
|
||||||
|
IF @RunDate < CAST(GETDATE() AS DATE)
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('RunDate cannot be in the past.', 16, 1);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Check if job exists in JobControl table
|
||||||
|
SET @Sql = N'SELECT @JobExists = 1 FROM ' + QUOTENAME(@dbName) + '.dbo.JobControl WHERE JobName = @JobNameParam';
|
||||||
|
|
||||||
|
EXEC sp_executesql @Sql,
|
||||||
|
N'@JobNameParam NVARCHAR(100), @JobExists BIT OUTPUT',
|
||||||
|
@JobNameParam = @JobName,
|
||||||
|
@JobExists = @JobExists OUTPUT;
|
||||||
|
|
||||||
|
IF @JobExists = 0
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('Job %s not found in JobControl table.', 16, 1, @JobName);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
-- Activate job in control table
|
||||||
|
SET @Sql = N'UPDATE ' + QUOTENAME(@dbName) + '.dbo.JobControl SET IsActive = 1 WHERE JobName = @JobNameParam';
|
||||||
|
EXEC sp_executesql @Sql,
|
||||||
|
N'@JobNameParam NVARCHAR(100)',
|
||||||
|
@JobNameParam = @JobName;
|
||||||
|
|
||||||
|
PRINT 'Job activated in JobControl.';
|
||||||
|
|
||||||
|
-- Convert date/time to SQL Agent format
|
||||||
|
SET @ActiveStartDate = CONVERT(INT, CONVERT(CHAR(8), @RunDate, 112));
|
||||||
|
SET @ActiveStartTime = DATEPART(HOUR, @RunTime) * 10000 +
|
||||||
|
DATEPART(MINUTE, @RunTime) * 100 +
|
||||||
|
DATEPART(SECOND, @RunTime);
|
||||||
|
|
||||||
|
SET @ScheduleName = @JobName + '_MonthlySchedule';
|
||||||
|
|
||||||
|
-- Get job id
|
||||||
|
SELECT @JobId = job_id
|
||||||
|
FROM msdb.dbo.sysjobs
|
||||||
|
WHERE name = @JobName;
|
||||||
|
|
||||||
|
IF @JobId IS NULL
|
||||||
|
BEGIN
|
||||||
|
RAISERROR('SQL Agent job "%s" not found.', 16, 1, @JobName);
|
||||||
|
RETURN;
|
||||||
|
END;
|
||||||
|
|
||||||
|
BEGIN TRY
|
||||||
|
BEGIN TRANSACTION;
|
||||||
|
|
||||||
|
-- Detach and delete all existing schedules for this job
|
||||||
|
INSERT INTO @ExistingSchedules (schedule_id, schedule_name)
|
||||||
|
SELECT s.schedule_id, s.name
|
||||||
|
FROM msdb.dbo.sysschedules AS s
|
||||||
|
INNER JOIN msdb.dbo.sysjobschedules AS js ON s.schedule_id = js.schedule_id
|
||||||
|
WHERE js.job_id = @JobId;
|
||||||
|
|
||||||
|
DECLARE @OldScheduleId INT, @OldScheduleName NVARCHAR(200);
|
||||||
|
|
||||||
|
DECLARE cur CURSOR LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT schedule_id, schedule_name FROM @ExistingSchedules;
|
||||||
|
|
||||||
|
OPEN cur;
|
||||||
|
FETCH NEXT FROM cur INTO @OldScheduleId, @OldScheduleName;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
PRINT 'Detaching old schedule: ' + @OldScheduleName;
|
||||||
|
EXEC msdb.dbo.sp_detach_schedule @job_id = @JobId, @schedule_name = @OldScheduleName;
|
||||||
|
|
||||||
|
PRINT 'Deleting old schedule: ' + @OldScheduleName;
|
||||||
|
EXEC msdb.dbo.sp_delete_schedule @schedule_name = @OldScheduleName;
|
||||||
|
|
||||||
|
FETCH NEXT FROM cur INTO @OldScheduleId, @OldScheduleName;
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE cur;
|
||||||
|
DEALLOCATE cur;
|
||||||
|
|
||||||
|
-- Create new one-time schedule
|
||||||
|
EXEC msdb.dbo.sp_add_schedule
|
||||||
|
@schedule_name = @ScheduleName,
|
||||||
|
@enabled = 1,
|
||||||
|
@freq_type = 1, -- One-time
|
||||||
|
@active_start_date = @ActiveStartDate,
|
||||||
|
@active_start_time = @ActiveStartTime;
|
||||||
|
|
||||||
|
-- Attach schedule to job
|
||||||
|
EXEC msdb.dbo.sp_attach_schedule
|
||||||
|
@job_id = @JobId,
|
||||||
|
@schedule_name = @ScheduleName;
|
||||||
|
|
||||||
|
COMMIT TRANSACTION;
|
||||||
|
|
||||||
|
PRINT 'New schedule created for job "' + @JobName +
|
||||||
|
'" on ' + CONVERT(VARCHAR(10), @RunDate, 120) +
|
||||||
|
' at ' + CONVERT(VARCHAR(8), @RunTime, 108);
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
IF @@TRANCOUNT > 0
|
||||||
|
ROLLBACK TRANSACTION;
|
||||||
|
|
||||||
|
DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
|
||||||
|
RAISERROR('Error creating schedule: %s', 16, 1, @ErrorMessage);
|
||||||
|
END CATCH;
|
||||||
|
END;
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user