--Trace: --TP_APPLY_HC_MAP @m_perf_no = 113213, @m_hcmap_no = 39, @m_date_appl_mode = 3, @m_end_date = '2019-10-23 00:00:00', @m_repl_mode = 1, @m_session_no = 11169 DECLARE @item_id INT DECLARE ITEM_CURSOR CURSOR -- Create the cursor FOR --contents of the cursor, selecting the value you're gonna mess with SELECT p.perf_no FROM dbo.T_PERF p WHERE p.prod_season_no IN (112850,136718,112851,112852,112853) -- 2020 4D Shows OPEN ITEM_CURSOR -- Opens the cursor FETCH NEXT FROM ITEM_CURSOR into @Item_ID -- Fetch the first value from selection into variable WHILE @@FETCH_STATUS = 0 -- start a loop for all the values within the selection BEGIN --actions taken for each row:-- stored procedure to apply hold code map EXEC dbo.TP_APPLY_HC_MAP @m_perf_no = @item_id, @m_hcmap_no = 39, @m_date_appl_mode = 3, @m_end_date = '2019-10-23 00:00:00', @m_repl_mode = 1 , @m_session_no = 11198 FETCH NEXT FROM ITEM_CURSOR INTO @ITEM_ID -- We fetch the next value END -- We arrive here when @@FETCH_STATUS shows there are no more results to treat CLOSE ITEM_CURSOR DEALLOCATE ITEM_CURSOR -- CLOSE and DEALLOCATE remove the data from memory and clean up the process -- single test exec: --EXEC TP_APPLY_HC_MAP --@m_perf_no = 113053, --@m_hcmap_no = 39, --@m_date_appl_mode = 3, --@m_end_date = '2019-10-23 00:00:00', --@m_repl_mode = 1, --@m_session_no = 11192 --SELECT * FROM dbo.T_NEXT_ID --SELECT TOP 10 * FROM t_session