我们有参数方向作为参数绑定(bind)的输出,同时我们有结果绑定(bind)。因此,如果我们有输出变量或返回类型变量,它们将在输出时可用,那么为什么我们需要 Result 绑定(bind)。
最佳答案
ResultSets和输出参数不一样,各有各的用途:
ResultSets 用于存储 Select 查询的结果:它可以是一列或多列,也可以是单行或完整的结果集。 ResultSets 作为 ADO RecordSets 被检索并且可以存储在变量中。一般来说,RecordSet 可以按时消费。
Output Parameters 用于存储一些值,这些值可以在 SQL 命令的任何部分设置(最后不需要)。参数具有与SQL 存储过程参数相同的概念。该值可以多次使用。
您可以使用输出参数和结果集执行 SQL 任务。
附加信息
- SQL Server Performance ResultSet vs Output Parameter vs Return Value
- Result Sets in the Execute SQL Task
- Map Result Sets to Variables in an Execute SQL Task
- Parameters and Return Codes in the Execute SQL Task
更新 1 @ 2019-16-08
您可以将输出参数用作另一个存储过程中的输入参数,但您必须在单独的执行 SQL 任务中执行它。
如果您需要在一个执行 SQL 任务中执行两个存储过程,那么您可以使用下面示例中提到的 SQL 变量:
DECLARE @output VARCHAR(50)
EXEC proc1 @output OUTPUT
EXEC proc2 @output
更新 2 @ 2019-19-09
最近我在SQL Shack上发表了一篇关于这个话题的详细文章,你可以去看看:
关于sql-server - 执行 SQL 任务输出参数 vs ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57493210/