Можете ли вы изменить usp_SP1 и usp_SP2?
Если это так, в usp_Decision создайте локальную временную таблицу с правильной схемой для вставки результатов:
create table #results (....)
Затем в вызываемой процедуре проверьте наличие этой временной таблицы. Если он существует, вставьте во временную таблицу. Если нет, верните набор результатов как обычно. Это помогает сохранить существующее поведение, если вложенные процедуры вызываются из другого места.
if object_id('tempdb..#results') is not null begin
insert #results (....)
select .....
end
else begin
select ....
end
Когда управление возвращается к вызывающей процедуре, #results будет заполняться вложенным процессом, в зависимости от того, какой из них был вызван.
Если наборы результатов не используют одну и ту же схему, вам может потребоваться создать две временные таблицы в usp_Decision.