Try the below code...
DECLARE @TransactionComponents TABLE
(
pkTransactionComponent int IDENTITY(1,1) NOT NULL,
pkTransactionID int NOT NULL,
ComponentID int NULL
)
INSERT INTO @TransactionComponents(pkTransactionID, ComponentID)
SELECT 1,5
UNION SELECT 1,6
UNION SELECT 1,7
UNION SELECT 1,8
UNION SELECT 1,9
UNION SELECT 1,10
UNION SELECT 10,2
UNION SELECT 2,11
UNION SELECT 2,12
UNION SELECT 3,4
DECLARE @Id INT
SELECT @Id = 1
;WITH Hierarchy AS
(
SELECT * FROM @TransactionComponents
WHERE pktransactionid = @Id
UNION ALL
SELECT A.* FROM @TransactionComponents AS A
INNER JOIN Hierarchy AS B ON A.pktransactionid = B.componentid
)
SELECT * FROM Hierarchy