【发布时间】:2010-05-31 17:54:00
【问题描述】:
我希望能够将存储过程的名称作为字符串传递给另一个存储过程,并使用动态参数调用它。不过我遇到了错误。
具体来说我试过了:
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' 调用过程 test。
当我运行上面的代码时,我得到:
消息 2812,级别 16,状态 62,过程 call_it,第 6 行 找不到存储过程 'test 'a','b''。
但是,运行 test 'a','b' 工作正常。
【问题讨论】:
标签: sql sql-server sql-server-2005 tsql stored-procedures