WITH BOM_CTE (HID, HRef, HDesc, SC, CDesc, CHID, CQ, SEQ)
AS
(
--Anchor Member Definition
SELECT H.ID as HID, H.BomReference as HRef, H.Description as HDesc, C.StockCode as SC,C.Description as CDesc,C.HeaderID as CHID,C.Quantity as CQ,1 as SEQ
--GNT\SAGEL50.[sagel50_35648] refers to a database on a linked server on my main SQL server
FROM [GNT\SAGEL50].[sagel50_35648].[dbo].BomHeaders H
JOIN [GNT\SAGEL50].[sagel50_35648].[dbo].BomComponents C
ON H.ID = C.HeaderID
WHERE H.BomReference like 'SA000009%'
UNION ALL
--Recursive Member Definition
SELECT H.ID , H.BomReference f, H.Description , C.StockCode ,C.Description ,C.HeaderID ,C.Quantity, BC.SEQ+1
FROM [GNT\SAGEL50].[sagel50_35648].[dbo].BomHeaders H
JOIN [GNT\SAGEL50].[sagel50_35648].[dbo].BomComponents C
ON H.ID = C.HeaderID
JOIN BOM_CTE BC
ON H.BomReference = BC.SC
)
Select * From BOM_CTE
This Works Now, after I removed the aliases, all I need to do now is pass the BOMReference I want to iterate through instead of the hardcoded 'SA000009'%