【问题标题】:How to capture data flow component name dynamically while package SSIS package is executing?如何在执行包 SSIS 包时动态捕获数据流组件名称?
【发布时间】:2014-06-04 14:02:00
【问题描述】:

我想在包执行时获取数据流组件名称。由于名为 [System::SourceName] 的系统变量仅获取控制流任务的名称? 有没有办法使用脚本组件捕获它们?

我想记录数据流任务组件,并想记录在包运行期间有多少行受到影响。我知道行数给出了正在处理的行数,但也必须捕获数据流任务组件的名称。我正在使用 SQL Server 2012

【问题讨论】:

  • 你能帮我理解你想要完成什么吗?也许是数据流图+您期望/希望从中获得什么。您的目标是 SQL Server 2012+ 还是 2012/2012 之前的项目部署模型?
  • 我想记录数据流任务组件,并想记录在包运行期间有多少行受到影响。我知道行数给出了正在处理的行数,但也必须捕获数据流任务组件的名称。我正在使用 SQL Server 2012
  • 我想你想要 system.sourcename。我在自定义日志记录中到处使用它。虽然对于我的行计数记录,我使用表名。

标签: sql sql-server ssis etl


【解决方案1】:

我会启用内置的日志记录功能,并将输出定向到 msdb 数据库。然后我会查询 sysssislog 表。

然后我会享受一杯平静的茶,同时我会考虑与使用自定义解决方案重新发明轮子相比,我节省了多少时间。我什至可能会盯着窗外看一会儿……

【讨论】:

  • 当我享用一杯好茶(并望向窗外!)时,我发现缺少内置日志记录。例如,除非发生了变化,否则内置的日志记录不会捕获行数,而这正是 OP 想要做的。
  • 您可能需要记录 OnProgress 和/或 OnPipelinerowssent 消息。您还可以使用带有 Dts.Events.FireInformation 的脚本组件来写出您自己的消息,例如基于 RowCount。
猜你喜欢
  • 2023-03-08
  • 2012-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
  • 2012-07-05
  • 1970-01-01
相关资源
最近更新 更多