我希望能够将存储过程的名称作为字符串传递给另一个存储过程,并使用动态参数调用它。但是我遇到了错误。
具体来说,我尝试了以下方法:
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应该使用参数'a'和'b'调用测试过程。
当我运行上面的代码时,我得到了:
消息2812,级别16,状态62,过程call_it,第6行 找不到存储过程'test 'a','b''。
然而,运行测试'a','b'是正常的。