i think you need just this
Select @newrequestid = key_id from table_keys where table_name = 'adhoc'
;With CTE
AS
(
SELECT @newrequestid +1 AS roc_id
,SR.rptdesc
,SR.resource
,SR.tat
,SR.hrs
,SR.mins
,RR.busneed
,RR.requestid
,datediff(month, receiveddate,expirationdate)+1 AS DiffVal
,1 AS Counter
FROM [dbo].[CustomerInfo] RR
INNER JOIN SELECTED_Customer SR
ON RR.requestid = SR.requestid
where RR.requestid = 149016
UNION ALL
SELECT roc_id+1
,rptdesc
,resource
,tat
,hrs
,mins
,busneed
,requestid
,DiffVal
,Counter + 1
FROM CTE
WHERE Counter + 1 <=DiffVal
)
INSERT INTO [UnderWriting].[dbo].[renewals]
([roc_id]
,[rptdesc]
,[rptrsrcetxt]
,[tat]
,[HRS]
,[mins]
,[busneed]
,[origrequestid]
)
SELECT roc_id
,rptdesc
,resource
,tat
,hrs
,mins
,busneed
,requestid
FROM CTE
update table_keys
set key_id = (SELECT MAX(roc_id)
FROM [UnderWriting].[dbo].[renewals]
WHERE [origrequestid]=149016)
where table_name = 'adhoc'
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/