1717
1818BEGIN
1919 ;WITH
20- cteExternalReference (NodeId, ParentNodeId, PrimaryCatalogueNodeId, InitialNodePath)
20+ cteNode (NodeId, ParentNodeId, PrimaryCatalogueNodeId, InitialNodePath)
2121 AS
2222 (
2323 SELECT
5050 INNER JOIN
5151 hierarchy.[Node] n ON nl.ChildNodeId = n.Id
5252 INNER JOIN
53- cteExternalReference cte ON nl.ParentNodeId = cte.NodeId
53+ cteNode cte ON nl.ParentNodeId = cte.NodeId
5454 INNER JOIN
5555 hierarchy.NodeVersion nv ON n.CurrentNodeVersionId = nv.Id
5656 WHERE
@@ -59,10 +59,47 @@ BEGIN
5959 AND n.Deleted = 0
6060 AND nl.Deleted = 0
6161
62- )
62+ ),
6363
64- SELECT @HasExternalCatalogueReference=case when count(distinct cte.PrimaryCatalogueNodeId ) > 1 then 1 ELSE 0 END
65- FROM
66- cteExternalReference cte
64+ cteResource
65+ AS (
66+ SELECT cte.PrimaryCatalogueNodeId
67+ FROM
68+ cteNode cte
69+ UNION
70+
71+ SELECT
72+ rv.PrimaryCatalogueNodeId AS PrimaryCatalogueNodeId
73+ FROM
74+ hierarchy.NodePath np
75+ INNER JOIN
76+ hierarchy.NodeResource nr ON np.NodeId = nr.NodeId
77+ INNER JOIN
78+ resources.[Resource] r ON nr.ResourceId = r.Id
79+ INNER JOIN
80+ resources.ResourceVersion rv ON rv.resourceId = nr.ResourceId
81+ LEFT JOIN
82+ resources.ResourceReference rr ON rr.ResourceId = nr.ResourceId AND rr.NodePathId = np.Id AND rr.Deleted = 0
83+ LEFT JOIN
84+ resources.VideoResourceVersion vrv ON vrv.ResourceVersionId = rv.Id AND vrv.Deleted = 0
85+ LEFT JOIN
86+ resources.AudioResourceVersion arv ON arv.ResourceVersionId = rv.Id AND arv.Deleted = 0
87+ LEFT JOIN
88+ resources.ResourceVersionEvent rve ON rve.ResourceVersionId = rv.Id AND rve.ResourceVersionEventTypeId = 6 /* Unpublished by admin */
89+ LEFT JOIN
90+ resources.ResourceVersion rvd ON r.Id = rvd.ResourceId AND rvd.Id > rv.Id AND rvd.Deleted = 0
91+ WHERE
92+ np.CatalogueNodeId = @CatalogueNodeId
93+ and rv.PrimaryCatalogueNodeId <>np.CatalogueNodeId
94+ AND r.CurrentResourceVersionId IS not NULL
95+ AND nr.VersionStatusId=2
96+ AND nr.Deleted = 0
97+ AND r.Deleted = 0
98+ AND rv.Deleted = 0
99+ )
100+ SELECT @HasExternalCatalogueReference=case when count(distinct cte.PrimaryCatalogueNodeId ) > 1 then 1 ELSE 0 END
101+
102+ FROM
103+ cteResource cte
67104END
68105GO
0 commit comments