使用 SQL 时,有时需要将 exec 调用的结果分配给变量。在这种情况下,您希望将 up_GetBusinessDay 的输出分配给名为 @PreviousBusinessDay 的变量。
虽然将 exec 结果直接分配给变量,SQL 不支持这种方法。原因是 exec 语句用于执行存储过程而不返回值。因此,您不能直接将执行结果分配给变量。
要从存储过程传回单个值,您可以使用输出参数。输出参数允许您指定一个变量来接收存储过程返回的值。以下是在 SQL Server 中创建和使用输出参数的方法:
存储过程定义:
CREATE PROCEDURE YourStoredProcedure ( @Param1 int ,@Param2 varchar(5) ,@Param3 datetime OUTPUT ) AS IF ISNULL(@Param1, 0) > 5 BEGIN SET @Param3 = GETDATE() END ELSE BEGIN SET @Param3 = '1/1/2010' END RETURN 0 GO
存储过程调用:
DECLARE @OutputParameter datetime ,@ReturnValue int EXEC @ReturnValue = YourStoredProcedure 1, NULL, @OutputParameter OUTPUT PRINT @ReturnValue PRINT CONVERT(char(23), @OutputParameter, 121)
输出:
0 2010-01-01 00:00:00.000
通过使用输出参数,您可以有效地将 exec 调用的结果分配给变量。当您需要从存储过程中检索单个值时,通常会使用此技术。
以上是如何在 SQL 代码和存储过程之间传递值?的详细内容。更多信息请关注PHP中文网其他相关文章!