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

时间:2013-05-16 05:53:41

标签: sql-server tsql sql-server-2008-r2

我正在使用EXECUTE SP_EXECUTESQL从另一个存储过程调用存储过程但我收到错误。我之前没有尝试过,所以我不知道出了什么问题。

此处SPGetServiceState为SP,@Id(IN), @Return_State(OUT), @Return_Execute_Date(OUT)是传递所需的参数,@Request_Id需要传递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

1 个答案:

答案 0 :(得分:1)

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

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

别忘了output说明符。没有它,该参数将被视为输入参数。