57 lines
5.2 KiB
Transact-SQL
57 lines
5.2 KiB
Transact-SQL
Use [EnVisage]
|
||
|
||
IF (NOT EXISTS (SELECT * FROM sys.tables where name='NonProjectTime2Resource'))
|
||
begin
|
||
CREATE TABLE [dbo].[NonProjectTime2Resource](
|
||
[Id] [uniqueidentifier] NOT NULL,
|
||
[NonProjectTimeId] [uniqueidentifier] NOT NULL,
|
||
[PeopleResourceId] [uniqueidentifier] NOT NULL,
|
||
[Position] [int] NOT NULL,
|
||
CONSTRAINT [PK_NonProjectTime2Resource] PRIMARY KEY CLUSTERED
|
||
(
|
||
[Id] ASC
|
||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||
) ON [PRIMARY]
|
||
|
||
ALTER TABLE [dbo].[NonProjectTime2Resource] ADD CONSTRAINT [DF_NonProjectTime2Resource_Id] DEFAULT (newid()) FOR [Id]
|
||
|
||
ALTER TABLE [dbo].[NonProjectTime2Resource] ADD CONSTRAINT [DF_NonProjectTime2Resource_Ordinal] DEFAULT ((0)) FOR [Position]
|
||
|
||
ALTER TABLE [dbo].[NonProjectTime2Resource] WITH CHECK ADD CONSTRAINT [FK_NonProjectTime2Resource_NonProjectTime2Resource] FOREIGN KEY([NonProjectTimeId])
|
||
REFERENCES [dbo].[NonProjectTime] ([Id])
|
||
|
||
ALTER TABLE [dbo].[NonProjectTime2Resource] CHECK CONSTRAINT [FK_NonProjectTime2Resource_NonProjectTime2Resource]
|
||
|
||
ALTER TABLE [dbo].[NonProjectTime2Resource] WITH CHECK ADD CONSTRAINT [FK_NonProjectTime2Resource_PeopleResource] FOREIGN KEY([PeopleResourceId])
|
||
REFERENCES [dbo].[PeopleResource] ([Id])
|
||
|
||
ALTER TABLE [dbo].[NonProjectTime2Resource] CHECK CONSTRAINT [FK_NonProjectTime2Resource_PeopleResource]
|
||
|
||
CREATE UNIQUE NONCLUSTERED INDEX [IX_NonProjectTime2Resource] ON [dbo].[NonProjectTime2Resource]
|
||
(
|
||
[NonProjectTimeId] ASC,
|
||
[PeopleResourceId] ASC
|
||
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||
end
|
||
GO
|
||
|
||
-- Fill table NonProjectTime2Resource with data
|
||
WITH NewItemsQry (NonProjectTimeId, PeopleResourceId, LastName, FirstName)
|
||
AS
|
||
(
|
||
SELECT DISTINCT A.NonProjectTimeId, A.PeopleResourceId, C.LastName, C.FirstName
|
||
FROM NonProjectTimeResourceAllocation A
|
||
INNER JOIN NonProjectTime B ON (B.Id = A.NonProjectTimeId)
|
||
INNER JOIN PeopleResource C ON (C.Id = A.PeopleResourceId)
|
||
WHERE NOT EXISTS(
|
||
SELECT D.* FROM NonProjectTime2Resource D
|
||
WHERE (D.NonProjectTimeId = A.NonProjectTimeId) AND (D.PeopleResourceId = A.PeopleResourceId)
|
||
)
|
||
)
|
||
|
||
INSERT INTO NonProjectTime2Resource (Id, NonProjectTimeId, PeopleResourceId, Position)
|
||
SELECT NEWID() AS Id, K.NonProjectTimeId, K.PeopleResourceId,
|
||
ROW_NUMBER() OVER (PARTITION BY K.NonProjectTimeId ORDER BY K.NonProjectTimeId, K.LastName, K.FirstName) AS Position
|
||
FROM NewItemsQry K
|
||
GO
|