IF OBJECT_ID(N'[dbo].[Hr_T_DevelopmentPlan]', 'U') IS NULL BEGIN CREATE TABLE [dbo].[Hr_T_DevelopmentPlan] ( [Id] uniqueidentifier NOT NULL DEFAULT NEWID(), [TenantId] uniqueidentifier NULL, [EmployeeId] uniqueidentifier NOT NULL, [ReviewId] uniqueidentifier NULL, [SkillId] uniqueidentifier NULL, [Title] nvarchar(256) NOT NULL, [ActionType] nvarchar(16) NOT NULL DEFAULT 'Training', [TrainingId] uniqueidentifier NULL, [CertificateId] uniqueidentifier NULL, [MentorId] uniqueidentifier NULL, [StartDate] date NULL, [DueDate] date NULL, [Status] nvarchar(16) NOT NULL DEFAULT 'Planned', [Progress] int NOT NULL DEFAULT 0, [Description] nvarchar(1024) NULL, [EmployeeNote] nvarchar(1024) 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_DevelopmentPlan] 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_DevelopmentPlan_ActionType]', 'C') IS NULL ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_ActionType] CHECK ([ActionType] IN ('Training', 'Mentoring', 'Project', 'Reading', 'Certificate', 'Other')) GO IF OBJECT_ID(N'[dbo].[CK_Hr_T_DevelopmentPlan_Status]', 'C') IS NULL ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_Status] CHECK ([Status] IN ('Planned', 'InProgress', 'Completed', 'Cancelled')) GO IF OBJECT_ID(N'[dbo].[CK_Hr_T_DevelopmentPlan_Progress]', 'C') IS NULL ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_Progress] CHECK ([Progress] BETWEEN 0 AND 100) GO IF OBJECT_ID(N'[dbo].[CK_Hr_T_DevelopmentPlan_Dates]', 'C') IS NULL ALTER TABLE [dbo].[Hr_T_DevelopmentPlan] ADD CONSTRAINT [CK_Hr_T_DevelopmentPlan_Dates] CHECK ([DueDate] IS NULL OR [StartDate] IS NULL OR [DueDate] >= [StartDate]) GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_DevelopmentPlan_Employee' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_DevelopmentPlan]')) CREATE NONCLUSTERED INDEX [IX_Hr_T_DevelopmentPlan_Employee] ON [dbo].[Hr_T_DevelopmentPlan] ([EmployeeId]) GO IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_DevelopmentPlan_Review' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_DevelopmentPlan]')) CREATE NONCLUSTERED INDEX [IX_Hr_T_DevelopmentPlan_Review] ON [dbo].[Hr_T_DevelopmentPlan] ([ReviewId]) GO