Add updated SqlAgent folder
This commit is contained in:
83
SqlAgent/01_Devl/1_Database_Setup/CreateDB.sql
Normal file
83
SqlAgent/01_Devl/1_Database_Setup/CreateDB.sql
Normal file
@ -0,0 +1,83 @@
|
||||
-- Create the database
|
||||
CREATE DATABASE DevlDUTASJobSchedule;
|
||||
GO
|
||||
|
||||
USE DevlDUTASJobSchedule;
|
||||
GO
|
||||
|
||||
-- Create the main control table
|
||||
CREATE TABLE dbo.JobControl
|
||||
(
|
||||
JobID INT IDENTITY(1,1) NOT NULL,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
ScheduledStartTime TIME(7) NOT NULL,
|
||||
SchedulerAction VARCHAR(10) NOT NULL, -- STOP or CONTINUE
|
||||
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
|
||||
|
||||
-- Create job dependencies table
|
||||
CREATE TABLE dbo.JobDependencies (
|
||||
DependencyID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
PredecessorJobName VARCHAR(50) NULL,
|
||||
FOREIGN KEY (JobName) REFERENCES dbo.JobControl(JobName)
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create execution history table
|
||||
CREATE TABLE dbo.JobExecutionHistory (
|
||||
ExecutionID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
RunDate DATE NOT NULL,
|
||||
ScheduledStartTime TIME NOT NULL,
|
||||
ActualStartTime DATETIME NULL,
|
||||
ActualEndTime DATETIME NULL,
|
||||
Status VARCHAR(20) DEFAULT 'Pending' CHECK (Status IN ('Pending', 'Running', 'Success', 'Failed', 'ForceComplete')),
|
||||
ErrorMessage VARCHAR(MAX) NULL,
|
||||
OverrideFlag BIT DEFAULT 0,
|
||||
OverrideBy VARCHAR(100) NULL,
|
||||
OverrideDate DATETIME NULL
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create holidays table
|
||||
CREATE TABLE dbo.FederalHolidays (
|
||||
HolidayID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
HolidayDate DATE NOT NULL UNIQUE,
|
||||
HolidayName VARCHAR(100) NOT NULL,
|
||||
Year INT NOT NULL
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create Exit Code table for PowerShell Script
|
||||
CREATE TABLE dbo.JobExitCodes
|
||||
(
|
||||
JobExecutionID INT IDENTITY(1,1) PRIMARY KEY, -- unique ID per execution
|
||||
JobName NVARCHAR(128) NOT NULL, -- job name
|
||||
RunDate DATE NOT NULL, -- date of execution
|
||||
ExitCode INT NOT NULL, -- exit code from job
|
||||
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
||||
);
|
||||
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
|
||||
29
SqlAgent/01_Devl/1_Database_Setup/InsertHolidays.sql
Normal file
29
SqlAgent/01_Devl/1_Database_Setup/InsertHolidays.sql
Normal file
@ -0,0 +1,29 @@
|
||||
USE [DevlDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[FederalHolidays] ON
|
||||
GO
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (1, CAST(N'2025-01-01' AS Date), N'New Years Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (2, CAST(N'2025-01-20' AS Date), N'Martin Luther King Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (3, CAST(N'2025-02-17' AS Date), N'Presidents Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (4, CAST(N'2025-05-26' AS Date), N'Memorial Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (5, CAST(N'2025-06-19' AS Date), N'Juneteenth Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (6, CAST(N'2025-07-04' AS Date), N'Independence Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (7, CAST(N'2025-09-01' AS Date), N'Labor Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (8, CAST(N'2025-10-13' AS Date), N'Columbus Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (9, CAST(N'2025-11-11' AS Date), N'Veterans 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)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (12, CAST(N'2026-01-01' AS Date), N'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)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (14, CAST(N'2026-02-16' AS Date), N'Presidents Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (15, CAST(N'2026-05-25' AS Date), N'Memorial Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (16, CAST(N'2026-06-19' AS Date), N'Juneteenth Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (17, CAST(N'2026-07-03' AS Date), N'Independence Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (18, CAST(N'2026-09-07' AS Date), N'Labor Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (19, CAST(N'2026-10-12' AS Date), N'Columbus Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (20, CAST(N'2026-11-11' AS Date), N'Veterans Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (21, CAST(N'2026-11-26' AS Date), N'Thanksgiving Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (22, CAST(N'2026-12-25' AS Date), N'Christmas Day', 2026)
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[FederalHolidays] OFF
|
||||
GO
|
||||
143
SqlAgent/01_Devl/1_Database_Setup/InsertJobControl.sql
Normal file
143
SqlAgent/01_Devl/1_Database_Setup/InsertJobControl.sql
Normal file
@ -0,0 +1,143 @@
|
||||
USE [DevlDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[JobControl] ON
|
||||
GO
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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}')
|
||||
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}')
|
||||
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}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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
|
||||
92
SqlAgent/01_Devl/1_Database_Setup/InsertJobDependencies.sql
Normal file
92
SqlAgent/01_Devl/1_Database_Setup/InsertJobDependencies.sql
Normal file
@ -0,0 +1,92 @@
|
||||
USE [DevlDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[JobDependencies] ON
|
||||
GO
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (1, N'DEVL_DAILY_DTSGSID0', N'DEVL_DAILY_DTSBX305')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (2, N'DEVL_DAILY_GSIRQ300', N'DEVL_DAILY_DTSBX305')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (3, N'DEVL_DAILY_DTSRQ202', N'DEVL_DAILY_GSIRQ300')
|
||||
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')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (6, N'DEVL_DAILY_DTSFT202', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (7, N'DEVL_DAILY_DTSBX432', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (8, N'DEVL_DAILY_DTSGACHD', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (9, N'DEVL_DAILY_DTSBX303', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (10, N'DEVL_DAILY_DTSGWAGE', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (11, N'DEVL_DAILY_DTSGCHKS', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (12, N'DEVL_DAILY_DTSESDAY', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (13, N'DEVL_DAILY_DTSGPAYT', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (14, N'DEVL_DAILY_DTSDX145', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (15, N'DEVL_DAILY_DTSBX629', N'DEVL_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (16, N'DEVL_DAILY_DTSBX630', N'DEVL_DAILY_DTSBX629')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (17, N'DEVL_DAILY_DTSFRAUD', N'DEVL_DAILY_DTSBX629')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (18, N'DEVL_DAILY_DTSRACHD', N'DEVL_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (19, N'DEVL_DAILY_DTSBXACH', N'DEVL_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (20, N'DEVL_DAILY_DTSBXREG', N'DEVL_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (21, N'DEVL_DAILY_DTSBX430', N'DEVL_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (22, N'DEVL_DAILY_DTSBX626', N'DEVL_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (23, N'DEVL_DAILY_DTSBX530', N'DEVL_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (24, N'DEVL_DAILY_DTSBXREL', N'DEVL_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (25, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBXACH')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (26, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBXREG')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (27, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBX430')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (28, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBX626')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (29, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBX530')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (30, N'DEVL_DAILY_DTSBX450', N'DEVL_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (31, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBXACH')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (32, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBXREG')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (33, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBX430')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (34, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBX626')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (35, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBX530')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (36, N'DEVL_DAILY_DTSBX451', N'DEVL_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (37, N'DEVL_DAILY_DTSPACHD', N'DEVL_DAILY_DTSBX450')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (38, N'DEVL_DAILY_DTSPACHD', N'DEVL_DAILY_DTSBX451')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (39, N'DEVL_DAILY_DTSPX148', N'DEVL_DAILY_DTSPACHD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (40, N'DEVL_DAILY_DTSRQ325', N'DEVL_DAILY_DTSPACHD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (41, N'DEVL_DAILY_DTSBX427', N'DEVL_DAILY_DTSPX148')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (42, N'DEVL_DAILY_DTSBX427', N'DEVL_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (43, N'DEVL_DAILY_DTSPDAY1', N'DEVL_DAILY_DTSBX427')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (44, N'DEVL_DAILY_DTSW4WGE', N'DEVL_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (45, N'DEVL_DAILY_DTSGSID2', N'DEVL_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (46, N'DEVL_DAILY_DTSGSID9', N'DEVL_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (47, N'DEVL_DAILY_DTSMIN01', N'DEVL_DAILY_DTSW4WGE')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (48, N'DEVL_DAILY_DTSMIN01', N'DEVL_DAILY_DTSGSID2')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (49, N'DEVL_DAILY_DTSMIN01', N'DEVL_DAILY_DTSGSID9')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (50, N'DEVL_DAILY_DTSMIN02', N'DEVL_DAILY_DTSW4WGE')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (51, N'DEVL_DAILY_DTSMIN02', N'DEVL_DAILY_DTSGSID2')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (52, N'DEVL_DAILY_DTSMIN02', N'DEVL_DAILY_DTSGSID9')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (53, N'DEVL_DAILY_DTSRQ459', N'DEVL_DAILY_DTSMIN01')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (54, N'DEVL_DAILY_DTSRQ459', N'DEVL_DAILY_DTSMIN02')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (55, N'DEVL_DAILY_DTSBXPFL', N'DEVL_DAILY_DTSRQ459')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (56, N'DEVL_DAILY_DESBD427', N'DEVL_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (57, N'DEVL_DAILY_DTSBX403', N'DEVL_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (58, N'DEVL_DAILY_DTSBE405', N'DEVL_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (59, N'DEVL_DAILY_DTSBX405', N'DEVL_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (60, N'DEVL_DAILY_DTSRQ335', N'DEVL_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (61, N'DEVL_DAILY_DTSBX601', N'DEVL_DAILY_DTSRQ335')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (62, N'DEVL_WEEKLY_DTSBXREJ', N'DEVL_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (63, N'DEVL_WEEKLY_DTSBX122', N'DEVL_WEEKLY_DTSPDAY7')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (64, N'DEVL_WEEKLY_DTSRQ511', N'DEVL_WEEKLY_DTSPDAY7')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (65, N'DEVL_MONTHLY_DTSRQ414', N'DEVL_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (66, N'DEVL_MONTHLY_DTSCHGVB', N'DEVL_MONTHLY_DTSPMON1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (67, N'DEVL_MONTHLY_DTSCHGVR', N'DEVL_MONTHLY_DTSCHGVB')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (68, N'DEVL_MONTHLY_DTSVBKUP', N'DEVL_MONTHLY_DTSPMON1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (69, N'DEVL_MONTHLY_DTSVRSTR', N'DEVL_MONTHLY_DTSVBKUP')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (70, N'DEVL_MONTHLY_DTSRQ442', N'DEVL_MONTHLY_DTSRQ513')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (71, N'DEVL_QUARTERLY_DTSRQ119', N'DEVL_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (72, N'DEVL_QUARTERLY_DTSRQ417', N'DEVL_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (73, N'DEVL_QUARTERLY_DTSRQ320', N'DEVL_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (74, N'DEVL_QUARTERLY_DTSRQ793', N'DEVL_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (75, N'DEVL_QUARTERLY_DTSCHGQ1', N'DEVL_DAILY_DTSRQ325')
|
||||
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;
|
||||
63
SqlAgent/01_Devl/4_Job_Maintenance/FederalHolidaysDML.sql
Normal file
63
SqlAgent/01_Devl/4_Job_Maintenance/FederalHolidaysDML.sql
Normal file
@ -0,0 +1,63 @@
|
||||
USE [DevlDUTASJobSchedule];
|
||||
GO
|
||||
|
||||
/**************************************************************************************************
|
||||
-- FILE: FederalHolidays.sql
|
||||
-- PURPOSE: Manage FederalHolidays table - Create, Read, Update, Delete for a single holiday
|
||||
-- TABLE: dbo.FederalHolidays
|
||||
**************************************************************************************************/
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Holiday
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[FederalHolidays]
|
||||
WHERE [Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- INSERT - Create Holiday
|
||||
-------------------------------
|
||||
INSERT INTO [dbo].[FederalHolidays]
|
||||
(
|
||||
[HolidayDate],
|
||||
[HolidayName],
|
||||
[Year]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
'2025-01-01', -- Holiday date
|
||||
N'New Year''s Day', -- Holiday name
|
||||
2025 -- Year
|
||||
);
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- UPDATE - Modify Holiday
|
||||
-------------------------------
|
||||
UPDATE [dbo].[FederalHolidays]
|
||||
SET
|
||||
[HolidayName] = N'New Year''s Day (Observed)',
|
||||
[HolidayDate] = '2025-01-02'
|
||||
WHERE
|
||||
[Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- DELETE - Remove Holiday
|
||||
-------------------------------
|
||||
DELETE FROM [dbo].[FederalHolidays]
|
||||
WHERE [Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day (Observed)';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Holiday
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[FederalHolidays]
|
||||
WHERE [Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day';
|
||||
GO
|
||||
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
|
||||
68
SqlAgent/01_Devl/4_Job_Maintenance/JobControlDML.sql
Normal file
68
SqlAgent/01_Devl/4_Job_Maintenance/JobControlDML.sql
Normal file
@ -0,0 +1,68 @@
|
||||
USE [DevlDUTASJobSchedule];
|
||||
GO
|
||||
|
||||
/**************************************************************************************************
|
||||
-- FILE: JobControl.sql
|
||||
-- PURPOSE: Manage JobControl table - Create, Read, Update, Delete for a single job
|
||||
-- TABLE: dbo.JobControl
|
||||
**************************************************************************************************/
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Job Record
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobControl]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- INSERT - Create Job Record
|
||||
-------------------------------
|
||||
INSERT INTO [dbo].[JobControl]
|
||||
(
|
||||
[JobName],
|
||||
[ScheduledStartTime],
|
||||
[SchedulerAction],
|
||||
[IsActive],
|
||||
[CreatedDate],
|
||||
[Frequency],
|
||||
[FrequencyPattern]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
N'PROD_DAILY_DTSBX215', -- Job name
|
||||
'14:00:00', -- 2 PM (24-hour format)
|
||||
N'CONTINUE', -- Action
|
||||
1, -- Active
|
||||
GETDATE(), -- Current system time
|
||||
N'DAILY', -- Frequency
|
||||
N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}' -- JSON pattern
|
||||
);
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- UPDATE - Modify Job Record
|
||||
-------------------------------
|
||||
UPDATE [dbo].[JobControl]
|
||||
SET
|
||||
[ScheduledStartTime] = '15:00:00', -- Change to 3 PM
|
||||
[SchedulerAction] = 'STOP', -- Change to STOP
|
||||
[IsActive] = 0 -- Deactivate
|
||||
WHERE
|
||||
[JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- DELETE - Remove Job Record
|
||||
-------------------------------
|
||||
DELETE FROM [dbo].[JobControl]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Job Record
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobControl]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
56
SqlAgent/01_Devl/4_Job_Maintenance/JobDependenciesDML.sql
Normal file
56
SqlAgent/01_Devl/4_Job_Maintenance/JobDependenciesDML.sql
Normal file
@ -0,0 +1,56 @@
|
||||
USE [DevlDUTASJobSchedule];
|
||||
GO
|
||||
|
||||
/**************************************************************************************************
|
||||
-- FILE: JobDependencies.sql
|
||||
-- PURPOSE: Manage JobDependencies table - Create, Read, Update, Delete for a single dependency
|
||||
-- TABLE: dbo.JobDependencies
|
||||
**************************************************************************************************/
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Dependency
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobDependencies]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- INSERT - Create Dependency
|
||||
-------------------------------
|
||||
INSERT INTO [dbo].[JobDependencies]
|
||||
(
|
||||
[JobName],
|
||||
[PredecessorJobName]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
N'PROD_DAILY_DTSGSID0', -- Dependent job
|
||||
N'PROD_DAILY_DTSBX305' -- Predecessor job
|
||||
);
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- UPDATE - Modify Dependency
|
||||
-------------------------------
|
||||
UPDATE [dbo].[JobDependencies]
|
||||
SET [PredecessorJobName] = N'PROD_DAILY_DTSBX215'
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0'
|
||||
AND [PredecessorJobName] = N'PROD_DAILY_DTSBX305';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- DELETE - Remove Dependency
|
||||
-------------------------------
|
||||
DELETE FROM [dbo].[JobDependencies]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0'
|
||||
AND [PredecessorJobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Dependency
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobDependencies]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0';
|
||||
GO
|
||||
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;
|
||||
|
||||
118
SqlAgent/01_Devl/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
118
SqlAgent/01_Devl/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
@ -0,0 +1,118 @@
|
||||
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'
|
||||
$SqlServer = 'DOES_DUTAS-SQL1'
|
||||
}
|
||||
'TEST' {
|
||||
$ComputerName = '10.57.110.141'
|
||||
$DatabaseName = 'TestDUTASJobSchedule'
|
||||
$SqlServer = 'DOES_DUTAS-SQL1'
|
||||
}
|
||||
'PROD' {
|
||||
$ComputerName = '10.57.111.120'
|
||||
$DatabaseName = 'ProdDUTASJobSchedule'
|
||||
$SqlServer = 'DOES_DUTAS-SQL'
|
||||
}
|
||||
default {
|
||||
throw "Invalid environment specified: $Env"
|
||||
}
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Remote credentials (consider secure vault in 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 (-not $exitCode) { $exitCode = 1 } # Guard for null/false exit codes
|
||||
|
||||
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=$SqlServer;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 on $SqlServer for job $JobName"
|
||||
}
|
||||
catch {
|
||||
$errorMsg = $_.Exception.Message
|
||||
Write-Host "Failed to log exit code to database $DatabaseName on $SqlServer`: $errorMsg"
|
||||
}
|
||||
```
|
||||
|
||||
}
|
||||
|
||||
exit $exitCode
|
||||
140
SqlAgent/01_Devl/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
140
SqlAgent/01_Devl/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
@ -0,0 +1,140 @@
|
||||
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
|
||||
if ($summary.Count -eq 0) {
|
||||
$summary = @($Error[0])
|
||||
}
|
||||
}
|
||||
|
||||
# --- Email Notification Settings ---
|
||||
$smtpServer = "smtp4.dc.gov"
|
||||
$fromEmail = "Dutas@dc.gov"
|
||||
$toEmail = "zarath.lalputan@dc.gov"
|
||||
$ccEmail = @("srujani.chandragiri@dc.gov", "neerajk@innovaconsulting.com")
|
||||
|
||||
$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>
|
||||
"@
|
||||
|
||||
# --- Attachment Setup ---
|
||||
# Automatically attach MSGLOG.txt if it exists in the JOBLOG folder
|
||||
$attachmentPath = Join-Path $syslogFolder "MSGLOG.txt"
|
||||
|
||||
$sendParams = @{
|
||||
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 = $true
|
||||
}
|
||||
|
||||
if (Test-Path $attachmentPath) {
|
||||
$sendParams['Attachments'] = $attachmentPath
|
||||
Write-Host "Attachment found: $attachmentPath" -ForegroundColor Cyan
|
||||
} else {
|
||||
Write-Host "No MSGLOG.txt found at $syslogFolder" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# --- Conditional Email Sending ---
|
||||
# ===================================================================================
|
||||
# EMAIL SEND CONDITION TOGGLE:
|
||||
# By default, email will ALWAYS be sent whether the job succeeded or failed.
|
||||
# To send email ONLY if the job fails, uncomment the next line:
|
||||
# if ($isSuccess -eq 1) {
|
||||
# ===================================================================================
|
||||
|
||||
try {
|
||||
Write-Host "Preparing to send email to $toEmail..." -ForegroundColor Yellow
|
||||
Send-MailMessage @sendParams
|
||||
Write-Host "Email sent successfully to $toEmail" -ForegroundColor Cyan
|
||||
}
|
||||
catch {
|
||||
Write-Host "Failed to send email: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# ===================================================================================
|
||||
# End of email send condition block (only required if you uncomment the IF above)
|
||||
# } # End Email send condition
|
||||
# ===================================================================================
|
||||
|
||||
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."
|
||||
83
SqlAgent/02_Test/1_Database_Setup/CreateDB.sql
Normal file
83
SqlAgent/02_Test/1_Database_Setup/CreateDB.sql
Normal file
@ -0,0 +1,83 @@
|
||||
-- Create the database
|
||||
CREATE DATABASE TestDUTASJobSchedule;
|
||||
GO
|
||||
|
||||
USE TestDUTASJobSchedule;
|
||||
GO
|
||||
|
||||
-- Create the main control table
|
||||
CREATE TABLE dbo.JobControl
|
||||
(
|
||||
JobID INT IDENTITY(1,1) NOT NULL,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
ScheduledStartTime TIME(7) NOT NULL,
|
||||
SchedulerAction VARCHAR(10) NOT NULL, -- STOP or CONTINUE
|
||||
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
|
||||
|
||||
-- Create job dependencies table
|
||||
CREATE TABLE dbo.JobDependencies (
|
||||
DependencyID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
PredecessorJobName VARCHAR(50) NULL,
|
||||
FOREIGN KEY (JobName) REFERENCES dbo.JobControl(JobName)
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create execution history table
|
||||
CREATE TABLE dbo.JobExecutionHistory (
|
||||
ExecutionID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
RunDate DATE NOT NULL,
|
||||
ScheduledStartTime TIME NOT NULL,
|
||||
ActualStartTime DATETIME NULL,
|
||||
ActualEndTime DATETIME NULL,
|
||||
Status VARCHAR(20) DEFAULT 'Pending' CHECK (Status IN ('Pending', 'Running', 'Success', 'Failed', 'ForceComplete')),
|
||||
ErrorMessage VARCHAR(MAX) NULL,
|
||||
OverrideFlag BIT DEFAULT 0,
|
||||
OverrideBy VARCHAR(100) NULL,
|
||||
OverrideDate DATETIME NULL
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create holidays table
|
||||
CREATE TABLE dbo.FederalHolidays (
|
||||
HolidayID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
HolidayDate DATE NOT NULL UNIQUE,
|
||||
HolidayName VARCHAR(100) NOT NULL,
|
||||
Year INT NOT NULL
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create Exit Code table for PowerShell Script
|
||||
CREATE TABLE dbo.JobExitCodes
|
||||
(
|
||||
JobExecutionID INT IDENTITY(1,1) PRIMARY KEY, -- unique ID per execution
|
||||
JobName NVARCHAR(128) NOT NULL, -- job name
|
||||
RunDate DATE NOT NULL, -- date of execution
|
||||
ExitCode INT NOT NULL, -- exit code from job
|
||||
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
||||
);
|
||||
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
|
||||
29
SqlAgent/02_Test/1_Database_Setup/InsertHolidays.sql
Normal file
29
SqlAgent/02_Test/1_Database_Setup/InsertHolidays.sql
Normal file
@ -0,0 +1,29 @@
|
||||
USE [TestDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[FederalHolidays] ON
|
||||
GO
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (1, CAST(N'2025-01-01' AS Date), N'New Years Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (2, CAST(N'2025-01-20' AS Date), N'Martin Luther King Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (3, CAST(N'2025-02-17' AS Date), N'Presidents Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (4, CAST(N'2025-05-26' AS Date), N'Memorial Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (5, CAST(N'2025-06-19' AS Date), N'Juneteenth Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (6, CAST(N'2025-07-04' AS Date), N'Independence Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (7, CAST(N'2025-09-01' AS Date), N'Labor Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (8, CAST(N'2025-10-13' AS Date), N'Columbus Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (9, CAST(N'2025-11-11' AS Date), N'Veterans 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)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (12, CAST(N'2026-01-01' AS Date), N'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)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (14, CAST(N'2026-02-16' AS Date), N'Presidents Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (15, CAST(N'2026-05-25' AS Date), N'Memorial Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (16, CAST(N'2026-06-19' AS Date), N'Juneteenth Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (17, CAST(N'2026-07-03' AS Date), N'Independence Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (18, CAST(N'2026-09-07' AS Date), N'Labor Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (19, CAST(N'2026-10-12' AS Date), N'Columbus Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (20, CAST(N'2026-11-11' AS Date), N'Veterans Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (21, CAST(N'2026-11-26' AS Date), N'Thanksgiving Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (22, CAST(N'2026-12-25' AS Date), N'Christmas Day', 2026)
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[FederalHolidays] OFF
|
||||
GO
|
||||
143
SqlAgent/02_Test/1_Database_Setup/InsertJobControl.sql
Normal file
143
SqlAgent/02_Test/1_Database_Setup/InsertJobControl.sql
Normal file
@ -0,0 +1,143 @@
|
||||
USE [TestDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[JobControl] ON
|
||||
GO
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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}')
|
||||
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}')
|
||||
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}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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
|
||||
92
SqlAgent/02_Test/1_Database_Setup/InsertJobDependencies.sql
Normal file
92
SqlAgent/02_Test/1_Database_Setup/InsertJobDependencies.sql
Normal file
@ -0,0 +1,92 @@
|
||||
USE [TestDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[JobDependencies] ON
|
||||
GO
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (1, N'TEST_DAILY_DTSGSID0', N'TEST_DAILY_DTSBX305')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (2, N'TEST_DAILY_GSIRQ300', N'TEST_DAILY_DTSBX305')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (3, N'TEST_DAILY_DTSRQ202', N'TEST_DAILY_GSIRQ300')
|
||||
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')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (6, N'TEST_DAILY_DTSFT202', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (7, N'TEST_DAILY_DTSBX432', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (8, N'TEST_DAILY_DTSGACHD', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (9, N'TEST_DAILY_DTSBX303', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (10, N'TEST_DAILY_DTSGWAGE', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (11, N'TEST_DAILY_DTSGCHKS', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (12, N'TEST_DAILY_DTSESDAY', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (13, N'TEST_DAILY_DTSGPAYT', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (14, N'TEST_DAILY_DTSDX145', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (15, N'TEST_DAILY_DTSBX629', N'TEST_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (16, N'TEST_DAILY_DTSBX630', N'TEST_DAILY_DTSBX629')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (17, N'TEST_DAILY_DTSFRAUD', N'TEST_DAILY_DTSBX629')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (18, N'TEST_DAILY_DTSRACHD', N'TEST_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (19, N'TEST_DAILY_DTSBXACH', N'TEST_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (20, N'TEST_DAILY_DTSBXREG', N'TEST_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (21, N'TEST_DAILY_DTSBX430', N'TEST_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (22, N'TEST_DAILY_DTSBX626', N'TEST_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (23, N'TEST_DAILY_DTSBX530', N'TEST_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (24, N'TEST_DAILY_DTSBXREL', N'TEST_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (25, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBXACH')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (26, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBXREG')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (27, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBX430')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (28, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBX626')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (29, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBX530')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (30, N'TEST_DAILY_DTSBX450', N'TEST_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (31, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBXACH')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (32, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBXREG')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (33, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBX430')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (34, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBX626')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (35, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBX530')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (36, N'TEST_DAILY_DTSBX451', N'TEST_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (37, N'TEST_DAILY_DTSPACHD', N'TEST_DAILY_DTSBX450')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (38, N'TEST_DAILY_DTSPACHD', N'TEST_DAILY_DTSBX451')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (39, N'TEST_DAILY_DTSPX148', N'TEST_DAILY_DTSPACHD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (40, N'TEST_DAILY_DTSRQ325', N'TEST_DAILY_DTSPACHD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (41, N'TEST_DAILY_DTSBX427', N'TEST_DAILY_DTSPX148')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (42, N'TEST_DAILY_DTSBX427', N'TEST_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (43, N'TEST_DAILY_DTSPDAY1', N'TEST_DAILY_DTSBX427')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (44, N'TEST_DAILY_DTSW4WGE', N'TEST_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (45, N'TEST_DAILY_DTSGSID2', N'TEST_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (46, N'TEST_DAILY_DTSGSID9', N'TEST_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (47, N'TEST_DAILY_DTSMIN01', N'TEST_DAILY_DTSW4WGE')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (48, N'TEST_DAILY_DTSMIN01', N'TEST_DAILY_DTSGSID2')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (49, N'TEST_DAILY_DTSMIN01', N'TEST_DAILY_DTSGSID9')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (50, N'TEST_DAILY_DTSMIN02', N'TEST_DAILY_DTSW4WGE')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (51, N'TEST_DAILY_DTSMIN02', N'TEST_DAILY_DTSGSID2')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (52, N'TEST_DAILY_DTSMIN02', N'TEST_DAILY_DTSGSID9')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (53, N'TEST_DAILY_DTSRQ459', N'TEST_DAILY_DTSMIN01')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (54, N'TEST_DAILY_DTSRQ459', N'TEST_DAILY_DTSMIN02')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (55, N'TEST_DAILY_DTSBXPFL', N'TEST_DAILY_DTSRQ459')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (56, N'TEST_DAILY_DESBD427', N'TEST_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (57, N'TEST_DAILY_DTSBX403', N'TEST_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (58, N'TEST_DAILY_DTSBE405', N'TEST_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (59, N'TEST_DAILY_DTSBX405', N'TEST_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (60, N'TEST_DAILY_DTSRQ335', N'TEST_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (61, N'TEST_DAILY_DTSBX601', N'TEST_DAILY_DTSRQ335')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (62, N'TEST_WEEKLY_DTSBXREJ', N'TEST_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (63, N'TEST_WEEKLY_DTSBX122', N'TEST_WEEKLY_DTSPDAY7')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (64, N'TEST_WEEKLY_DTSRQ511', N'TEST_WEEKLY_DTSPDAY7')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (65, N'TEST_MONTHLY_DTSRQ414', N'TEST_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (66, N'TEST_MONTHLY_DTSCHGVB', N'TEST_MONTHLY_DTSPMON1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (67, N'TEST_MONTHLY_DTSCHGVR', N'TEST_MONTHLY_DTSCHGVB')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (68, N'TEST_MONTHLY_DTSVBKUP', N'TEST_MONTHLY_DTSPMON1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (69, N'TEST_MONTHLY_DTSVRSTR', N'TEST_MONTHLY_DTSVBKUP')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (70, N'TEST_MONTHLY_DTSRQ442', N'TEST_MONTHLY_DTSRQ513')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (71, N'TEST_QUARTERLY_DTSRQ119', N'TEST_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (72, N'TEST_QUARTERLY_DTSRQ417', N'TEST_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (73, N'TEST_QUARTERLY_DTSRQ320', N'TEST_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (74, N'TEST_QUARTERLY_DTSRQ793', N'TEST_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (75, N'TEST_QUARTERLY_DTSCHGQ1', N'TEST_DAILY_DTSRQ325')
|
||||
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;
|
||||
63
SqlAgent/02_Test/4_Job_Maintenance/FederalHolidaysDML.sql
Normal file
63
SqlAgent/02_Test/4_Job_Maintenance/FederalHolidaysDML.sql
Normal file
@ -0,0 +1,63 @@
|
||||
USE [TestDUTASJobSchedule];
|
||||
GO
|
||||
|
||||
/**************************************************************************************************
|
||||
-- FILE: FederalHolidays.sql
|
||||
-- PURPOSE: Manage FederalHolidays table - Create, Read, Update, Delete for a single holiday
|
||||
-- TABLE: dbo.FederalHolidays
|
||||
**************************************************************************************************/
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Holiday
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[FederalHolidays]
|
||||
WHERE [Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- INSERT - Create Holiday
|
||||
-------------------------------
|
||||
INSERT INTO [dbo].[FederalHolidays]
|
||||
(
|
||||
[HolidayDate],
|
||||
[HolidayName],
|
||||
[Year]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
'2025-01-01', -- Holiday date
|
||||
N'New Year''s Day', -- Holiday name
|
||||
2025 -- Year
|
||||
);
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- UPDATE - Modify Holiday
|
||||
-------------------------------
|
||||
UPDATE [dbo].[FederalHolidays]
|
||||
SET
|
||||
[HolidayName] = N'New Year''s Day (Observed)',
|
||||
[HolidayDate] = '2025-01-02'
|
||||
WHERE
|
||||
[Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- DELETE - Remove Holiday
|
||||
-------------------------------
|
||||
DELETE FROM [dbo].[FederalHolidays]
|
||||
WHERE [Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day (Observed)';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Holiday
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[FederalHolidays]
|
||||
WHERE [Year] = 2025
|
||||
AND [HolidayName] = N'New Year''s Day';
|
||||
GO
|
||||
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
|
||||
68
SqlAgent/02_Test/4_Job_Maintenance/JobControlDML.sql
Normal file
68
SqlAgent/02_Test/4_Job_Maintenance/JobControlDML.sql
Normal file
@ -0,0 +1,68 @@
|
||||
USE [TestDUTASJobSchedule];
|
||||
GO
|
||||
|
||||
/**************************************************************************************************
|
||||
-- FILE: JobControl.sql
|
||||
-- PURPOSE: Manage JobControl table - Create, Read, Update, Delete for a single job
|
||||
-- TABLE: dbo.JobControl
|
||||
**************************************************************************************************/
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Job Record
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobControl]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- INSERT - Create Job Record
|
||||
-------------------------------
|
||||
INSERT INTO [dbo].[JobControl]
|
||||
(
|
||||
[JobName],
|
||||
[ScheduledStartTime],
|
||||
[SchedulerAction],
|
||||
[IsActive],
|
||||
[CreatedDate],
|
||||
[Frequency],
|
||||
[FrequencyPattern]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
N'PROD_DAILY_DTSBX215', -- Job name
|
||||
'14:00:00', -- 2 PM (24-hour format)
|
||||
N'CONTINUE', -- Action
|
||||
1, -- Active
|
||||
GETDATE(), -- Current system time
|
||||
N'DAILY', -- Frequency
|
||||
N'{"Frequency":"Daily","Days":["Mon","Tue","Wed","Thu","Fri"]}' -- JSON pattern
|
||||
);
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- UPDATE - Modify Job Record
|
||||
-------------------------------
|
||||
UPDATE [dbo].[JobControl]
|
||||
SET
|
||||
[ScheduledStartTime] = '15:00:00', -- Change to 3 PM
|
||||
[SchedulerAction] = 'STOP', -- Change to STOP
|
||||
[IsActive] = 0 -- Deactivate
|
||||
WHERE
|
||||
[JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- DELETE - Remove Job Record
|
||||
-------------------------------
|
||||
DELETE FROM [dbo].[JobControl]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Job Record
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobControl]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
56
SqlAgent/02_Test/4_Job_Maintenance/JobDependenciesDML.sql
Normal file
56
SqlAgent/02_Test/4_Job_Maintenance/JobDependenciesDML.sql
Normal file
@ -0,0 +1,56 @@
|
||||
USE [TestDUTASJobSchedule];
|
||||
GO
|
||||
|
||||
/**************************************************************************************************
|
||||
-- FILE: JobDependencies.sql
|
||||
-- PURPOSE: Manage JobDependencies table - Create, Read, Update, Delete for a single dependency
|
||||
-- TABLE: dbo.JobDependencies
|
||||
**************************************************************************************************/
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Dependency
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobDependencies]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- INSERT - Create Dependency
|
||||
-------------------------------
|
||||
INSERT INTO [dbo].[JobDependencies]
|
||||
(
|
||||
[JobName],
|
||||
[PredecessorJobName]
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
N'PROD_DAILY_DTSGSID0', -- Dependent job
|
||||
N'PROD_DAILY_DTSBX305' -- Predecessor job
|
||||
);
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- UPDATE - Modify Dependency
|
||||
-------------------------------
|
||||
UPDATE [dbo].[JobDependencies]
|
||||
SET [PredecessorJobName] = N'PROD_DAILY_DTSBX215'
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0'
|
||||
AND [PredecessorJobName] = N'PROD_DAILY_DTSBX305';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- DELETE - Remove Dependency
|
||||
-------------------------------
|
||||
DELETE FROM [dbo].[JobDependencies]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0'
|
||||
AND [PredecessorJobName] = N'PROD_DAILY_DTSBX215';
|
||||
GO
|
||||
|
||||
-------------------------------
|
||||
-- SELECT - View Dependency
|
||||
-------------------------------
|
||||
SELECT *
|
||||
FROM [dbo].[JobDependencies]
|
||||
WHERE [JobName] = N'PROD_DAILY_DTSGSID0';
|
||||
GO
|
||||
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;
|
||||
|
||||
118
SqlAgent/02_Test/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
118
SqlAgent/02_Test/5_PowerShell_Scripts/Execute-RemoteJob.ps1
Normal file
@ -0,0 +1,118 @@
|
||||
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'
|
||||
$SqlServer = 'DOES_DUTAS-SQL1'
|
||||
}
|
||||
'TEST' {
|
||||
$ComputerName = '10.57.110.141'
|
||||
$DatabaseName = 'TestDUTASJobSchedule'
|
||||
$SqlServer = 'DOES_DUTAS-SQL1'
|
||||
}
|
||||
'PROD' {
|
||||
$ComputerName = '10.57.111.120'
|
||||
$DatabaseName = 'ProdDUTASJobSchedule'
|
||||
$SqlServer = 'DOES_DUTAS-SQL'
|
||||
}
|
||||
default {
|
||||
throw "Invalid environment specified: $Env"
|
||||
}
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Remote credentials (consider secure vault in 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 (-not $exitCode) { $exitCode = 1 } # Guard for null/false exit codes
|
||||
|
||||
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=$SqlServer;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 on $SqlServer for job $JobName"
|
||||
}
|
||||
catch {
|
||||
$errorMsg = $_.Exception.Message
|
||||
Write-Host "Failed to log exit code to database $DatabaseName on $SqlServer`: $errorMsg"
|
||||
}
|
||||
```
|
||||
|
||||
}
|
||||
|
||||
exit $exitCode
|
||||
140
SqlAgent/02_Test/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
140
SqlAgent/02_Test/5_PowerShell_Scripts/RCSubmit-Job.ps1
Normal file
@ -0,0 +1,140 @@
|
||||
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
|
||||
if ($summary.Count -eq 0) {
|
||||
$summary = @($Error[0])
|
||||
}
|
||||
}
|
||||
|
||||
# --- Email Notification Settings ---
|
||||
$smtpServer = "smtp4.dc.gov"
|
||||
$fromEmail = "Dutas@dc.gov"
|
||||
$toEmail = "zarath.lalputan@dc.gov"
|
||||
$ccEmail = @("srujani.chandragiri@dc.gov", "neerajk@innovaconsulting.com")
|
||||
|
||||
$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>
|
||||
"@
|
||||
|
||||
# --- Attachment Setup ---
|
||||
# Automatically attach MSGLOG.txt if it exists in the JOBLOG folder
|
||||
$attachmentPath = Join-Path $syslogFolder "MSGLOG.txt"
|
||||
|
||||
$sendParams = @{
|
||||
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 = $true
|
||||
}
|
||||
|
||||
if (Test-Path $attachmentPath) {
|
||||
$sendParams['Attachments'] = $attachmentPath
|
||||
Write-Host "Attachment found: $attachmentPath" -ForegroundColor Cyan
|
||||
} else {
|
||||
Write-Host "No MSGLOG.txt found at $syslogFolder" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# --- Conditional Email Sending ---
|
||||
# ===================================================================================
|
||||
# EMAIL SEND CONDITION TOGGLE:
|
||||
# By default, email will ALWAYS be sent whether the job succeeded or failed.
|
||||
# To send email ONLY if the job fails, uncomment the next line:
|
||||
# if ($isSuccess -eq 1) {
|
||||
# ===================================================================================
|
||||
|
||||
try {
|
||||
Write-Host "Preparing to send email to $toEmail..." -ForegroundColor Yellow
|
||||
Send-MailMessage @sendParams
|
||||
Write-Host "Email sent successfully to $toEmail" -ForegroundColor Cyan
|
||||
}
|
||||
catch {
|
||||
Write-Host "Failed to send email: $($_.Exception.Message)" -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
# ===================================================================================
|
||||
# End of email send condition block (only required if you uncomment the IF above)
|
||||
# } # End Email send condition
|
||||
# ===================================================================================
|
||||
|
||||
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."
|
||||
83
SqlAgent/03_Prod/1_Database_Setup/CreateDB.sql
Normal file
83
SqlAgent/03_Prod/1_Database_Setup/CreateDB.sql
Normal file
@ -0,0 +1,83 @@
|
||||
-- Create the database
|
||||
CREATE DATABASE ProdDUTASJobSchedule;
|
||||
GO
|
||||
|
||||
USE ProdDUTASJobSchedule;
|
||||
GO
|
||||
|
||||
-- Create the main control table
|
||||
CREATE TABLE dbo.JobControl
|
||||
(
|
||||
JobID INT IDENTITY(1,1) NOT NULL,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
ScheduledStartTime TIME(7) NOT NULL,
|
||||
SchedulerAction VARCHAR(10) NOT NULL, -- STOP or CONTINUE
|
||||
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
|
||||
|
||||
-- Create job dependencies table
|
||||
CREATE TABLE dbo.JobDependencies (
|
||||
DependencyID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
PredecessorJobName VARCHAR(50) NULL,
|
||||
FOREIGN KEY (JobName) REFERENCES dbo.JobControl(JobName)
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create execution history table
|
||||
CREATE TABLE dbo.JobExecutionHistory (
|
||||
ExecutionID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
JobName VARCHAR(50) NOT NULL,
|
||||
RunDate DATE NOT NULL,
|
||||
ScheduledStartTime TIME NOT NULL,
|
||||
ActualStartTime DATETIME NULL,
|
||||
ActualEndTime DATETIME NULL,
|
||||
Status VARCHAR(20) DEFAULT 'Pending' CHECK (Status IN ('Pending', 'Running', 'Success', 'Failed', 'ForceComplete')),
|
||||
ErrorMessage VARCHAR(MAX) NULL,
|
||||
OverrideFlag BIT DEFAULT 0,
|
||||
OverrideBy VARCHAR(100) NULL,
|
||||
OverrideDate DATETIME NULL
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create holidays table
|
||||
CREATE TABLE dbo.FederalHolidays (
|
||||
HolidayID INT IDENTITY(1,1) PRIMARY KEY,
|
||||
HolidayDate DATE NOT NULL UNIQUE,
|
||||
HolidayName VARCHAR(100) NOT NULL,
|
||||
Year INT NOT NULL
|
||||
);
|
||||
GO
|
||||
|
||||
-- Create Exit Code table for PowerShell Script
|
||||
CREATE TABLE dbo.JobExitCodes
|
||||
(
|
||||
JobExecutionID INT IDENTITY(1,1) PRIMARY KEY, -- unique ID per execution
|
||||
JobName NVARCHAR(128) NOT NULL, -- job name
|
||||
RunDate DATE NOT NULL, -- date of execution
|
||||
ExitCode INT NOT NULL, -- exit code from job
|
||||
RecordedTime DATETIME NOT NULL DEFAULT GETDATE() -- timestamp of execution
|
||||
);
|
||||
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
|
||||
29
SqlAgent/03_Prod/1_Database_Setup/InsertHolidays.sql
Normal file
29
SqlAgent/03_Prod/1_Database_Setup/InsertHolidays.sql
Normal file
@ -0,0 +1,29 @@
|
||||
USE [ProdDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[FederalHolidays] ON
|
||||
GO
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (1, CAST(N'2025-01-01' AS Date), N'New Years Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (2, CAST(N'2025-01-20' AS Date), N'Martin Luther King Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (3, CAST(N'2025-02-17' AS Date), N'Presidents Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (4, CAST(N'2025-05-26' AS Date), N'Memorial Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (5, CAST(N'2025-06-19' AS Date), N'Juneteenth Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (6, CAST(N'2025-07-04' AS Date), N'Independence Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (7, CAST(N'2025-09-01' AS Date), N'Labor Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (8, CAST(N'2025-10-13' AS Date), N'Columbus Day', 2025)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (9, CAST(N'2025-11-11' AS Date), N'Veterans 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)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (12, CAST(N'2026-01-01' AS Date), N'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)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (14, CAST(N'2026-02-16' AS Date), N'Presidents Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (15, CAST(N'2026-05-25' AS Date), N'Memorial Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (16, CAST(N'2026-06-19' AS Date), N'Juneteenth Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (17, CAST(N'2026-07-03' AS Date), N'Independence Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (18, CAST(N'2026-09-07' AS Date), N'Labor Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (19, CAST(N'2026-10-12' AS Date), N'Columbus Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (20, CAST(N'2026-11-11' AS Date), N'Veterans Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (21, CAST(N'2026-11-26' AS Date), N'Thanksgiving Day', 2026)
|
||||
INSERT [dbo].[FederalHolidays] ([HolidayID], [HolidayDate], [HolidayName], [Year]) VALUES (22, CAST(N'2026-12-25' AS Date), N'Christmas Day', 2026)
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[FederalHolidays] OFF
|
||||
GO
|
||||
143
SqlAgent/03_Prod/1_Database_Setup/InsertJobControl.sql
Normal file
143
SqlAgent/03_Prod/1_Database_Setup/InsertJobControl.sql
Normal file
@ -0,0 +1,143 @@
|
||||
USE [ProdDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[JobControl] ON
|
||||
GO
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"]}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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"}')
|
||||
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}')
|
||||
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}')
|
||||
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}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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}]}')
|
||||
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
|
||||
92
SqlAgent/03_Prod/1_Database_Setup/InsertJobDependencies.sql
Normal file
92
SqlAgent/03_Prod/1_Database_Setup/InsertJobDependencies.sql
Normal file
@ -0,0 +1,92 @@
|
||||
USE [ProdDUTASJobSchedule]
|
||||
GO
|
||||
SET IDENTITY_INSERT [dbo].[JobDependencies] ON
|
||||
GO
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (1, N'PROD_DAILY_DTSGSID0', N'PROD_DAILY_DTSBX305')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (2, N'PROD_DAILY_GSIRQ300', N'PROD_DAILY_DTSBX305')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (3, N'PROD_DAILY_DTSRQ202', N'PROD_DAILY_GSIRQ300')
|
||||
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')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (6, N'PROD_DAILY_DTSFT202', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (7, N'PROD_DAILY_DTSBX432', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (8, N'PROD_DAILY_DTSGACHD', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (9, N'PROD_DAILY_DTSBX303', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (10, N'PROD_DAILY_DTSGWAGE', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (11, N'PROD_DAILY_DTSGCHKS', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (12, N'PROD_DAILY_DTSESDAY', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (13, N'PROD_DAILY_DTSGPAYT', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (14, N'PROD_DAILY_DTSDX145', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (15, N'PROD_DAILY_DTSBX629', N'PROD_DAILY_GSIRQ300')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (16, N'PROD_DAILY_DTSBX630', N'PROD_DAILY_DTSBX629')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (17, N'PROD_DAILY_DTSFRAUD', N'PROD_DAILY_DTSBX629')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (18, N'PROD_DAILY_DTSRACHD', N'PROD_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (19, N'PROD_DAILY_DTSBXACH', N'PROD_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (20, N'PROD_DAILY_DTSBXREG', N'PROD_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (21, N'PROD_DAILY_DTSBX430', N'PROD_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (22, N'PROD_DAILY_DTSBX626', N'PROD_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (23, N'PROD_DAILY_DTSBX530', N'PROD_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (24, N'PROD_DAILY_DTSBXREL', N'PROD_DAILY_DTSFRAUD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (25, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBXACH')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (26, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBXREG')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (27, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBX430')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (28, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBX626')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (29, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBX530')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (30, N'PROD_DAILY_DTSBX450', N'PROD_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (31, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBXACH')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (32, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBXREG')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (33, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBX430')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (34, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBX626')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (35, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBX530')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (36, N'PROD_DAILY_DTSBX451', N'PROD_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (37, N'PROD_DAILY_DTSPACHD', N'PROD_DAILY_DTSBX450')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (38, N'PROD_DAILY_DTSPACHD', N'PROD_DAILY_DTSBX451')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (39, N'PROD_DAILY_DTSPX148', N'PROD_DAILY_DTSPACHD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (40, N'PROD_DAILY_DTSRQ325', N'PROD_DAILY_DTSPACHD')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (41, N'PROD_DAILY_DTSBX427', N'PROD_DAILY_DTSPX148')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (42, N'PROD_DAILY_DTSBX427', N'PROD_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (43, N'PROD_DAILY_DTSPDAY1', N'PROD_DAILY_DTSBX427')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (44, N'PROD_DAILY_DTSW4WGE', N'PROD_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (45, N'PROD_DAILY_DTSGSID2', N'PROD_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (46, N'PROD_DAILY_DTSGSID9', N'PROD_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (47, N'PROD_DAILY_DTSMIN01', N'PROD_DAILY_DTSW4WGE')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (48, N'PROD_DAILY_DTSMIN01', N'PROD_DAILY_DTSGSID2')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (49, N'PROD_DAILY_DTSMIN01', N'PROD_DAILY_DTSGSID9')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (50, N'PROD_DAILY_DTSMIN02', N'PROD_DAILY_DTSW4WGE')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (51, N'PROD_DAILY_DTSMIN02', N'PROD_DAILY_DTSGSID2')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (52, N'PROD_DAILY_DTSMIN02', N'PROD_DAILY_DTSGSID9')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (53, N'PROD_DAILY_DTSRQ459', N'PROD_DAILY_DTSMIN01')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (54, N'PROD_DAILY_DTSRQ459', N'PROD_DAILY_DTSMIN02')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (55, N'PROD_DAILY_DTSBXPFL', N'PROD_DAILY_DTSRQ459')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (56, N'PROD_DAILY_DESBD427', N'PROD_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (57, N'PROD_DAILY_DTSBX403', N'PROD_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (58, N'PROD_DAILY_DTSBE405', N'PROD_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (59, N'PROD_DAILY_DTSBX405', N'PROD_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (60, N'PROD_DAILY_DTSRQ335', N'PROD_DAILY_DTSBXPFL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (61, N'PROD_DAILY_DTSBX601', N'PROD_DAILY_DTSRQ335')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (62, N'PROD_WEEKLY_DTSBXREJ', N'PROD_DAILY_DTSBXREL')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (63, N'PROD_WEEKLY_DTSBX122', N'PROD_WEEKLY_DTSPDAY7')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (64, N'PROD_WEEKLY_DTSRQ511', N'PROD_WEEKLY_DTSPDAY7')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (65, N'PROD_MONTHLY_DTSRQ414', N'PROD_DAILY_DTSPDAY1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (66, N'PROD_MONTHLY_DTSCHGVB', N'PROD_MONTHLY_DTSPMON1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (67, N'PROD_MONTHLY_DTSCHGVR', N'PROD_MONTHLY_DTSCHGVB')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (68, N'PROD_MONTHLY_DTSVBKUP', N'PROD_MONTHLY_DTSPMON1')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (69, N'PROD_MONTHLY_DTSVRSTR', N'PROD_MONTHLY_DTSVBKUP')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (70, N'PROD_MONTHLY_DTSRQ442', N'PROD_MONTHLY_DTSRQ513')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (71, N'PROD_QUARTERLY_DTSRQ119', N'PROD_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (72, N'PROD_QUARTERLY_DTSRQ417', N'PROD_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (73, N'PROD_QUARTERLY_DTSRQ320', N'PROD_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (74, N'PROD_QUARTERLY_DTSRQ793', N'PROD_DAILY_DTSRQ325')
|
||||
INSERT [dbo].[JobDependencies] ([DependencyID], [JobName], [PredecessorJobName]) VALUES (75, N'PROD_QUARTERLY_DTSCHGQ1', N'PROD_DAILY_DTSRQ325')
|
||||
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.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user