39 lines
1.2 KiB
Transact-SQL
39 lines
1.2 KiB
Transact-SQL
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
|