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
|
||||
Reference in New Issue
Block a user