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