【发布时间】:2014-08-28 14:39:32
【问题描述】:
在 SSIS 包中有 MaximumErrorCount 属性。该属性的使用意味着在包执行期间,包正在计算错误的数量。
在执行一组特别复杂的包期间的各个点(通常在各个点将 MaximumErrorCount 设置为更高的级别),我希望能够捕获当前的错误计数 - 但我似乎找不到一种机制来做到这一点。
理想情况下,它是一个系统变量(它不是我能看到的),所以我可以随意构建表达式,但更糟糕的是,我似乎也找不到在脚本中捕获它的方法(我的 VB.net 技能很差,所以我可能错过了它,但我在对象浏览器中进行了谷歌搜索,但没有成功)。
任何 SSIS 专家都知道我如何在包的执行过程中捕获给定点的当前错误计数?
(我尝试将一个简单的变量增量嵌入到包级别的 OnError 事件处理程序中,但在极少数情况下,这似乎与引擎“计数”的实际错误数量不同步。无论如何,如果有一个内置的计数器,那将是非常受欢迎且更优雅的)
提前致谢。
【问题讨论】:
-
MaximumErrorCount 存在于所有任务和包级别上。恕我直言,调整这个值不是一个非常聪明的主意。最后,您可能会四处奔波,试图找出哪个任务具有什么价值,除非您想将它保持在所有任务 + 包的标准级别。
-
干杯 rvphx,我同意,但这些包是继承的。我的命令是解决它们,而不是重写它们(我希望!!)
-
通常处理捕获错误数据的方式是通过日志记录。错误计数很有趣,但有关错误的详细信息更有帮助。如果您希望收集每次执行的错误计数,我会在包中设置日志记录,然后查询日志表。
-
干杯马克,这又是一个好主意,但这些包中已经有日志记录活动,这对于检索执行后的最终错误计数很好。我很好奇是否有一种方法可以在包执行期间方便地返回当前的错误计数,并(可能)采取相应的行动(例如,在控制流中,如果 ErrorCount > 3 流 A,如果 ErrorCount