зачем выбирать из одной и той же таблицы 8 раз, просто продублируйте строки, как только вы получите их в первый раз, попробуйте это:
CREATE PROCEDURE [dbo].[TestProc]
AS
SET NOCOUNT ON;
create table #thistable (rid char(32))
;WITH AllNumbers AS
(
SELECT 1 AS Number
UNION ALL
SELECT Number+1
FROM AllNumbers
WHERE Number<8
)
insert into #thistable
(rid)
select A0RID
from tblCdbA0 t with (nolock)
INNER JOIN AllNumbers a ON 1=1
RETURN 0
GO
, если вы делаете это с UNION, у вас есть 8 сканирований таблицы на поток, и это будет складываться и влиять на производительность.