sql-server - 为什么foreach循环容器内变量的值为null

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

我有一个包含 foreach 文件枚举器的包。现在我有一个名为 EmailTo 的变量,它由位于循环容器之前的 foreach 容器外的执行 sql 任务填充,因为我只需要运行一次执行 sql 任务。 foreach 容器内的发送邮件任务正在访问变量 EmailTo。当我检查断点时。我了解到在 foreach 容器中 EmailTo 变量的值为空。这是为什么?

目前,我将 execute sql 任务移到 foreach 容器中以使其工作,因为我必须将它呈现给我的老板,但是没有必要将 execute sql 任务移到循环中,因为我只需要获取电子邮件一次。

我该怎么办。

最佳答案

当您将执行 SQL 任务完整结果集存储在变量中时,它存储为记录集。

一个Recordset只能被消费一次;如果它被发送邮件任务使用,则您不能再次使用它。

您可以使用脚本任务将 Recordset 复制到 DataTable 对象并将其存储在 SSIS 对象变量中。然后你可以多次使用它。

附加信息

关于sql-server - 为什么foreach循环容器内变量的值为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57370695/

相关文章:

sql - 基于 CSV SQL 的批量插入更新列

sql - 什么时候应该使用 SQL Server Unicode 'N' 常量?

windows - 如何限制批处理变量的长度

python - 将 Os.system 结果存储在变量中

php - 变量还是常量?

sql-server-2008 - 在SSIS OLEDB目标中更新行

sql-server - 将批量 JSON 数据加载到 SQL Server 表中

sql-server - 我可以在 UDF 中使用 If 吗?

sql - 如何在 SQL Server 2008 中搜索特殊字符 (%)

ssis - 待执行