Erkennen von doppelten Links in Policies

Es kommt sehr selten vor, aber es kann passieren: Eine nachfolgende Activtiy wir mehr als einmal getriggert, obwohl die Activtiy, die vorher ausgeführt wurde, nur ein Ergebnis hat und auch ‚Flatten‘ aktiviert ist.
Grund dafür sind zwei Links zwischen denselben Start und Ziel-Activities:
Dies kann z.B. in sehr seltenen Fällen passieren, wenn man Objekte kopiert.
Mit dieser Abfrage kann man diese identifizieren:
;WITH CTE
AS
(
SELECT DISTINCT SourceObject, TargetObject, Count(*) OVER(PARTITION BY TargetObject, SourceObject) AS CountDups
FROM LINKS INNER JOIN
OBJECTS ON LINKS.UniqueID = OBJECTS.UniqueID
WHERE (OBJECTS.Deleted IS NULL OR OBJECTS.Deleted = 0)
AND (OBJECTS.Enabled = 1)
)
SELECT FOLDERS.Name AS FolderName, POLICIES.Name AS PolicyName, OBJECTS.Name AS SourceObjectName, CTE.CountDups AS Number
FROM CTE INNER JOIN
OBJECTS ON CTE.SourceObject = OBJECTS.UniqueID INNER JOIN
POLICIES ON OBJECTS.ParentID = POLICIES.UniqueID INNER JOIN
FOLDERS ON POLICIES.ParentID = FOLDERS.UniqueID
WHERE CTE.CountDups > 1 AND OBJECTS.Enabled = 1
AND (FOLDERS.Deleted IS NULL OR FOLDERS.Deleted = 0)
AND (POLICIES.Deleted IS NULL OR POLICIES.Deleted = 0)












