Sql-Server

SqlServer 在嵌套過程中傳遞參數

  • November 23, 2016

我有這兩個程序:

Create procedure jolly (@job_par varchar(100)='p%') as 
select * from emp where job like @job_par


create procedure test1 @proc_name varchar(30)
as exec @proc_name

如果我這樣執行

exec test1 @proc_name= jolly

我讓所有員工的工作都以“p”開頭,沒關係。

但是我怎樣才能呼叫程序 test1 讓我返回所有工作=‘ACCOUNT’的員工?

我試過這樣,但它給了我錯誤:

exec test1 @proc_name= jolly @job_par='ACCOUNT'

如何傳遞第二個過程的參數?

謝謝你。

您需要將@job_par 參數添加到您的呼叫過程中,這樣您就可以將其傳遞下去。使用您的範例:

CREATE PROCEDURE jolly
   (
     @job_par VARCHAR(100) = 'p%'
   )
AS
   SELECT  *
   FROM    emp
   WHERE   job LIKE @job_par;
GO


CREATE PROCEDURE test1
   @proc_name VARCHAR(30) ,
   @job_par VARCHAR(100)
AS
   EXEC @proc_name @job_par;
GO


EXEC test1 @proc_name = 'jolly', @job_par = 'ACCOUNT';

引用自:https://dba.stackexchange.com/questions/156186