首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SSIS使用完整的结果集记录来自SP的详细信息

SSIS使用完整的结果集记录来自SP的详细信息
EN

Stack Overflow用户
提问于 2017-06-15 18:06:57
回答 2查看 291关注 0票数 0

(我不是一个足够有权威性的成员,不能在我的帖子中包含屏幕截图-这里是一个共享OneDrive文件夹的链接,其中有一篇带有图像的文章来解释更好的https://1drv.ms/f/s!Ai9bJ2dV87SLg9h5FP84If74hyUK4Q)

我正在尝试记录在SSIS包工作流程中通过执行SQL任务执行后,已插入、更新和删除的特定存储过程。有一个第三方实现的自定义日志记录方法,但它的工作原理是将系统ParentContainer ID与用户任务ID相关联,该ID用作记录此类信息的存储过程的参数。1)我认为这不适用于执行SQL任务;2)我想要一个超出DML函数发生范围的详细程度。

我已经成功地通过设置结果集,使用变量,并通过使用派生列任务的相邻数据流任务来检索变量并将其插入到日志表中,成功地记录了“单行”。

作为我当前工作方法的一个示例:

Exec SQL任务设置

记录的数据流部分的详细信息

我现在遇到执行多个插入的存储过程,因此我需要记录额外的详细信息--超过一行。我在proc中创建了变量来检索这个多插入场景,并在SP中使用联合select来生成以下结果集。

我知道我现在需要使用完整的结果集设置,但是对于这个应用程序,使用什么方法将结果集持久化到另一个步骤(对我来说是一个目的地,以便记录)。在研究中,我了解了如何使用Foreach循环容器,但这似乎可配置为一个变量,该变量需要是值类型对象。我目前在这里有4个变量,无法在Foreach对象的Collection部分进行设置。

我将非常感谢在实现这一点上的任何见解,或者对另一种方法的建议。

首先要感谢大家!

EN

回答 2

Stack Overflow用户

发布于 2017-06-15 18:59:08

您的Foreach SQL任务生成超过1行,您希望使用INSERT_B_BUDGET循环来捕获完整的结果集,对吗?

  1. 创建数据类型为LoopObject变量作为对象。
  2. 编辑INSERT_B_BUDGET任务,

在常规选项卡中,将ResultSet更改为完整结果集

在Result Set选项卡中,在INSERT_B_BUDGET任务之后,将Logging 1任务移动到容器中,变量名称为LoopObject.

  • add Foreach循环容器。

在“集合”选项卡的“枚举器”中,选择“Foreach ADO枚举器”,“ADO对象源变量作为LoopObject,枚举模式”,选择第一个表中的行。

在变量映射中,添加现有的4个变量。

票数 1
EN

Stack Overflow用户

发布于 2017-06-15 18:34:20

您必须设置一个分析器跟踪来跟踪正在执行的proc。您应该按数据库和用户在跟踪上设置筛选器,并使用SQLProfilerTSQL_SPs模板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44574140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文