SET ANSI_NULLS ON; GO SET QUOTED_IDENTIFIER ON; GO CREATE OR ALTER PROCEDURE dbo.SceneMetric_BackfillDefaultsForProject @ProjectID int AS BEGIN SET NOCOUNT ON; DECLARE @Inserted table (SceneID int NOT NULL, MetricTypeID int NOT NULL); INSERT dbo.SceneMetricValues (SceneID, MetricTypeID, Value, Notes) OUTPUT inserted.SceneID, inserted.MetricTypeID INTO @Inserted SELECT s.SceneID, mt.MetricTypeID, mt.DefaultValue, NULL FROM dbo.Scenes s INNER JOIN dbo.Chapters c ON c.ChapterID = s.ChapterID INNER JOIN dbo.Books b ON b.BookID = c.BookID INNER JOIN dbo.ProjectTimelineMetricSettings ptms ON ptms.ProjectID = b.ProjectID INNER JOIN dbo.SceneMetricTypes mt ON mt.MetricTypeID = ptms.MetricTypeID WHERE b.ProjectID = @ProjectID AND b.IsArchived = 0 AND c.IsArchived = 0 AND s.IsArchived = 0 AND mt.IsActive = 1 AND (mt.ProjectID IS NULL OR mt.ProjectID = @ProjectID) AND NOT EXISTS ( SELECT 1 FROM dbo.SceneMetricValues existing WHERE existing.SceneID = s.SceneID AND existing.MetricTypeID = mt.MetricTypeID ); SELECT COUNT(*) FROM @Inserted; END; GO