IF OBJECT_ID(N'[dbo].[Hr_T_LeaveRequest]', 'U') IS NULL BEGIN CREATE TABLE [dbo].[Hr_T_LeaveRequest] ( [Id] uniqueidentifier NOT NULL DEFAULT NEWID(), [TenantId] uniqueidentifier NULL, [RequestNo] nvarchar(32) NULL, [EmployeeId] uniqueidentifier NOT NULL, [EmployeeName] nvarchar(256) NULL, [DepartmentId] uniqueidentifier NULL, [JobPositionId] uniqueidentifier NULL, [LeaveTypeId] uniqueidentifier NOT NULL, [StartDate] datetime2 NOT NULL, [EndDate] datetime2 NOT NULL, [IsHalfDay] bit NOT NULL DEFAULT 0, [HalfDayPart] nvarchar(16) NULL, [Days] decimal(5, 1) NOT NULL DEFAULT 0, [Description] nvarchar(1024) NULL, [DocumentFileName] nvarchar(256) NULL, [DocumentContent] nvarchar(MAX) NULL, [BalanceWarning] nvarchar(512) NULL, [SickLeaveId] uniqueidentifier NULL, [ManagerIds] nvarchar(1024) NULL, [ManagerUserNames] nvarchar(1024) NULL, [RequiresManagerApproval] int NOT NULL DEFAULT 1, [ApprovalStatus] nvarchar(50) NULL, [ApprovalUser] nvarchar(1024) NULL, [ApprovalDate] datetime2 NULL, [ApprovalDescription] nvarchar(512) NULL, [LastNotifiedStatus] nvarchar(50) NULL, [IsActive] bit NOT NULL DEFAULT 1, [CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(), [CreatorId] uniqueidentifier NULL, [LastModificationTime] datetime2 NULL, [LastModifierId] uniqueidentifier NULL, [IsDeleted] bit NOT NULL DEFAULT 0, [DeletionTime] datetime2 NULL, [DeleterId] uniqueidentifier NULL, CONSTRAINT [PK_Hr_T_LeaveRequest] PRIMARY KEY NONCLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO IF OBJECT_ID(N'[dbo].[CK_Hr_T_LeaveRequest_Dates]', 'C') IS NULL ALTER TABLE [dbo].[Hr_T_LeaveRequest] ADD CONSTRAINT [CK_Hr_T_LeaveRequest_Dates] CHECK ([EndDate] >= [StartDate]) GO IF OBJECT_ID(N'[dbo].[CK_Hr_T_LeaveRequest_HalfDayPart]', 'C') IS NULL ALTER TABLE [dbo].[Hr_T_LeaveRequest] ADD CONSTRAINT [CK_Hr_T_LeaveRequest_HalfDayPart] CHECK ([HalfDayPart] IS NULL OR [HalfDayPart] IN ('Morning', 'Afternoon')) GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_LeaveRequest_Employee' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_LeaveRequest]')) CREATE NONCLUSTERED INDEX [IX_Hr_T_LeaveRequest_Employee] ON [dbo].[Hr_T_LeaveRequest] ([TenantId], [EmployeeId], [StartDate]) WHERE [IsDeleted] = 0 GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_LeaveRequest_SickLeave' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_LeaveRequest]')) CREATE NONCLUSTERED INDEX [IX_Hr_T_LeaveRequest_SickLeave] ON [dbo].[Hr_T_LeaveRequest] ([SickLeaveId]) WHERE [SickLeaveId] IS NOT NULL GO