首页 > 解决方案 > 执行 SQL 任务输出参数 vs ResultSet

问题描述

我们在参数绑定中有参数方向作为输出,同时我们也有结果绑定。因此,如果我们有输出变量或返回类型变量,它们将在输出中可用,那么为什么我们需要 Result 绑定。

标签: sql-serverssisetlssis-2012execute-sql-task

解决方案


ResultSet 和输出参数不一样,各有各的用途:

  • ResultSets用于存储 Select 查询的结果:它可以是一列或多列,也可以是单行或完整的结果集。结果集作为 ADO 记录集检索,并且可以存储在变量中。一般来说,一个 RecordSet 可以按时使用。

  • 输出参数用于存储一些可以在 SQL 命令的任何部分设置的值(最后不是必需的)。参数具有与 SQL 存储过程参数相同的概念。该值可以多次使用。

您可以有一个带有输出参数和一个结果集的执行 SQL 任务。


附加信息


更新 1 @ 2019-16-08

您可以在另一个存储过程中将输出参数用作输入参数,但您必须在单独的执行 SQL 任务中执行它。

如果您需要在一个执行 SQL 任务中执行两个存储过程,则可以使用 SQL 变量,如下例中所述:

DECLARE @output VARCHAR(50)

EXEC proc1 @output OUTPUT

EXEC proc2 @output

更新 2 @ 2019-19-09

最近我在 SQL Shack 上发表了一篇关于这个主题的详细文章,你可以查看它:


推荐阅读