53 lines
No EOL
2.5 KiB
Transact-SQL
53 lines
No EOL
2.5 KiB
Transact-SQL
IF OBJECT_ID(N'[dbo].[Hr_T_PerformanceGoal]', 'U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE [dbo].[Hr_T_PerformanceGoal]
|
|
(
|
|
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
|
|
[TenantId] uniqueidentifier NULL,
|
|
[ReviewId] uniqueidentifier NOT NULL,
|
|
[GoalType] nvarchar(8) NOT NULL DEFAULT 'KPI',
|
|
[Title] nvarchar(256) NOT NULL,
|
|
[Description] nvarchar(1024) NULL,
|
|
[Direction] nvarchar(16) NOT NULL DEFAULT 'Increasing',
|
|
[Unit] nvarchar(32) NULL,
|
|
[TargetValue] decimal(18, 2) NOT NULL,
|
|
[ActualValue] decimal(18, 2) NULL,
|
|
[Weight] decimal(5, 2) NOT NULL,
|
|
[AchievementRate] decimal(6, 2) NULL,
|
|
[SelfComment] nvarchar(1024) NULL,
|
|
[ManagerComment] 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_PerformanceGoal] 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_PerformanceGoal_GoalType]', 'C') IS NULL
|
|
ALTER TABLE [dbo].[Hr_T_PerformanceGoal] ADD CONSTRAINT [CK_Hr_T_PerformanceGoal_GoalType] CHECK ([GoalType] IN ('KPI', 'OKR'))
|
|
GO
|
|
|
|
IF OBJECT_ID(N'[dbo].[CK_Hr_T_PerformanceGoal_Direction]', 'C') IS NULL
|
|
ALTER TABLE [dbo].[Hr_T_PerformanceGoal] ADD CONSTRAINT [CK_Hr_T_PerformanceGoal_Direction] CHECK ([Direction] IN ('Increasing', 'Decreasing'))
|
|
GO
|
|
|
|
IF OBJECT_ID(N'[dbo].[CK_Hr_T_PerformanceGoal_Weight]', 'C') IS NULL
|
|
ALTER TABLE [dbo].[Hr_T_PerformanceGoal] ADD CONSTRAINT [CK_Hr_T_PerformanceGoal_Weight] CHECK ([Weight] > 0 AND [Weight] <= 100)
|
|
GO
|
|
|
|
IF OBJECT_ID(N'[dbo].[CK_Hr_T_PerformanceGoal_TargetValue]', 'C') IS NULL
|
|
ALTER TABLE [dbo].[Hr_T_PerformanceGoal] ADD CONSTRAINT [CK_Hr_T_PerformanceGoal_TargetValue] CHECK ([TargetValue] > 0)
|
|
GO
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_Hr_T_PerformanceGoal_Review' AND object_id = OBJECT_ID(N'[dbo].[Hr_T_PerformanceGoal]'))
|
|
CREATE NONCLUSTERED INDEX [IX_Hr_T_PerformanceGoal_Review] ON [dbo].[Hr_T_PerformanceGoal] ([ReviewId])
|
|
GO |