首页 >数据库 >mysql教程 >如何将 EXEC 调用的结果分配给 SQL 变量?

如何将 EXEC 调用的结果分配给 SQL 变量?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-04 12:46:39337浏览

How to Assign the Result of an EXEC Call to a SQL Variable?

将 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn