Попробуйте добавить еще один параметр к вашей процедуре
alter procedure sp_test
@dt_start date
,@dt_end date
,@need_params_back bit = 0 -- new param
as
begin
if @need_params_back = 0
begin
-- here is your code, for example:
select 1 as value
union all
select 2
end
else
begin
-- returning your params
select
@dt_start as dt_start
,@dt_end as dt_end
end
end
И дважды вызовите его в Excel: первый раз (назовем его Q1) с need_params_back = 1,
{call dbo.sp_test(?,?,1)}
здесь вам не нужно отображать параметры в ячейки, пусть пользователь вводит их.
во второй раз (назовем это Q2) - как в вашем вопросе.
{call dbo.sp_test(?,?,0)}
и сопоставьте параметры срезультаты нашего первого запроса (Q1).
Но использование такого подхода приводит к порядку обновления данных, потому что сначала вам нужно обновить Q1 и только после того, как вы получите результаты, обновить Q2 и все остальные ваши соединения.
Надеюсь, я вас правильно понял.