sql-server - 执行 SQL 任务输出参数 vs ResultSet

标签 sql-server ssis etl ssis-2012 execute-sql-task

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

最佳答案

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

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

  • Output Parameters 用于存储一些值,这些值可以在 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上发表了一篇关于这个话题的详细文章,你可以去看看:

关于sql-server - 执行 SQL 任务输出参数 vs ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57493210/

相关文章:

ssis - 动态赋值给SSIS中的变量

具有自动调度功能的 Java 开源 ETL 框架

hadoop - 是否建议利用Hadoop生态系统并行处理来管理和维护缓慢变化的数据仓库规模?

sql - 从 SQL Server 获取 JSON 格式的分层数据

sql - 了解 SQL 定义语法

sql-server - 无法识别 ssis sp 中的表变量

c# - 从 SSIS 脚本任务创建对自定义程序集的引用 - vb

python - Airflow :为每个文件运行 DAG 的正确方法

SQL Server 非常乐意添加日期和月份

sql - 如果更新....Where 不影响任何行,是否创建了任何锁?