Я хочу иметь возможность передавать имя хранимой процедуры в виде строки в другую хранимую процедуру и вызывать ее с динамическими параметрами. Я получаю сообщение об ошибке.
В частности, я пробовал:
create procedure test @var1 varchar(255), @var2 varchar(255) as
select 1
create procedure call_it @proc_name varchar(255)
as
declare @sp_str varchar(255)
set @sp_str = @proc_name + ' ''a'',''b'''
print @sp_str
exec @sp_str
exec call_it 'test'
Таким образом, процедура call_it должна вызывать процедуру test с аргументами 'a' и 'b'.
Когда я запускаю приведенный выше код, я получаю:
Сообщение 2812, Уровень 16, Состояние 62, Процедура call_it, Строка 6
Не удалось найти хранимую процедуру 'test' a ',' b ''.
Однако выполнение теста «a», «b» работает нормально.