将查询结果分配给 SQL 变量
使用提供的语法无法将 exec 调用的结果分配给 SQL 中的变量。但是,还有其他方法可以从存储过程中检索数据或执行查询。
输出参数
如果您需要从存储过程中检索单个值,您可以可以使用输出参数。输出参数是传递给存储过程并在过程中修改的变量。然后,修改后的值将返回给调用代码。
示例:
考虑以下存储过程,它采用两个参数并将 DATE 值分配给输出参数:
CREATE PROCEDURE up_GetBusinessDay ( @Date Date, @Offset Int, @NextBusinessDay Date OUTPUT ) AS BEGIN -- Code to calculate the NextBusinessDay SET @NextBusinessDay = '2023-03-15' END GO
您可以从代码中调用此存储过程并指定输出参数变量:
DECLARE @NextBusinessDay DATE; EXEC up_GetBusinessDay @Date = '2023-03-08', @Offset = -1, @NextBusinessDay OUTPUT; SELECT @NextBusinessDay;
这会将存储过程中计算的 DATE 值返回到 @NextBusinessDay 变量。
返回值
另一个选项就是使用返回值来指示存储过程或查询的成功或失败。返回值是返回给调用代码的单个整数值。
示例:
如果输入值,以下存储过程将返回返回值 1大于 5,否则返回 0:
CREATE PROCEDURE YourProcedure ( @Param Int ) AS BEGIN IF @Param > 5 RETURN 1; ELSE RETURN 0; END GO
您可以使用错误处理在代码中处理返回值机制。
以上是如何将 SQL 查询结果分配给变量?的详细内容。更多信息请关注PHP中文网其他相关文章!