我希望能够将存储过程的名称作为字符串传递到另一个存储过程,并使用动态参数调用它。虽然我收到了一个错误。从另一个存储过程动态调用存储过程
具体来说,我已经试过:
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应该调用带参数的 '一' 程序测试和 'B'。
当我运行上面的代码我得到:
Msg 2812, Level 16, State 62, Procedure call_it, Line 6
Could not find stored procedure 'test 'a','b''.
但是,在运行测试 'A', 'B' 正常工作。