将 Exec 结果分配给 SQL 变量
问题:
如何将 exec 调用的结果分配给 SQL 中的变量?例如,如果您有一个名为 up_GetBusinessDay 的存储过程返回单个日期,您可以使用如下语句分配结果吗:
exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1
答案:
利用输出参数是首选方法,而不是将结果直接分配给变量。下面是创建带有输出参数的存储过程的示例:
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中文网其他相关文章!