SQL Agen Scheduler - Updated

This commit is contained in:
Neeraj Kumar
2025-10-20 07:54:46 -04:00
parent 42a3da46ab
commit f8c32748c5
136 changed files with 5836 additions and 1216 deletions

View File

@ -6,14 +6,20 @@ USE TestDUTASJobSchedule;
GO
-- Create the main control table
CREATE TABLE dbo.JobControl (
JobID INT IDENTITY(1,1) PRIMARY KEY,
JobName VARCHAR(50) NOT NULL UNIQUE,
ScheduledStartTime TIME NOT NULL,
SchedulerAction VARCHAR(10) NOT NULL CHECK (SchedulerAction IN ('CONTINUE', 'STOP')),
IsActive BIT DEFAULT 1,
CreatedDate DATETIME DEFAULT GETDATE(),
Frequency VARCHAR(20) NOT NULL
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
@ -61,3 +67,17 @@ CREATE TABLE dbo.JobExitCodes
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