通过EXECUTE SP_EXECUTESQL从另一个SP调用SP



我使用EXECUTE SP_EXECUTESQL从另一个存储过程调用存储过程,但我得到一个错误。我以前没有试过,所以我不知道哪里出了问题。

其中SPGetServiceState为SP, @Id(IN), @Return_State(OUT), @Return_Execute_Date(OUT)为需要通过的参数,@Request_Id为不需要通过的参数。

EXECUTE SP_EXECUTESQL N'SPGetServiceState', N'@Id int,
  @Return_State tinyint, @Return_Execute_Date smalldatetime', 
  @Id = @Request_Id, @Return_State = 0, @Return_Execute_Date = NULL

除非从变量中检索存储过程的名称,否则不需要动态SQL。你只需:

exec dbo.SPGetServiceState(@Id, @Return_State output, @Return_Execute_Date output);

不要忘记output说明符。如果没有它,该参数将被视为输入参数。

相关内容

最新更新