我使用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
说明符。如果没有它,该参数将被视为输入参数。