2010-05-31 198 views
4

我希望能夠將存儲過程的名稱作爲字符串傳遞到另一個存儲過程,並使用動態參數調用它。雖然我收到了一個錯誤。從另一個存儲過程動態調用存儲過程

具體來說,我已經試過:

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' 正常工作。

回答

3

您應該使用「sp_executesql」過程。看看​​3210。

相關問題